{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "33a9aedb-b4d8-48c6-9590-58b221405ca5",
   "metadata": {},
   "source": [
    "Copyright (c) MONAI Consortium <br>\n",
    "Licensed under the Apache License, Version 2.0 (the \"License\"); <br>\n",
    "you may not use this file except in compliance with the License. <br>\n",
    "You may obtain a copy of the License at <br>\n",
    "http://www.apache.org/licenses/LICENSE-2.0 <br>\n",
    "Unless required by applicable law or agreed to in writing, software <br>\n",
    "distributed under the License is distributed on an \"AS IS\" BASIS, <br>\n",
    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>\n",
    "See the License for the specific language governing permissions and <br>\n",
    "limitations under the License. <br>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95c08725",
   "metadata": {},
   "source": [
    "# Super-resolution using Stable Diffusion v2 Upscalers\n",
    "\n",
    "This tutorial illustrates how to perform **super-resolution** on medical images using Latent Diffusion Models (LDMs) [1]. The idea is that, given a low-resolution image, we train a spatial autoencoder with a latent space of the same spatial size of the low resolution, so that high resolution images are encoded into a latent space of the same size of the low resolution image. The LDM then learns how to go from **noise to a latent representation of a high resolution image**. On training and inference, the **low resolution image is concatenated to the latent**, to condition the generative process. Finally, the high resolution latent representation is decoded into a high resolution image. \n",
    "\n",
    "To improve the performance of our models, we will use a method called \"noise conditioning augmentation\" (introduced in [2] and used in Stable Diffusion v2.0 and Imagen Video [3]). During the training, we add noise to the low-resolution images using a random signal-to-noise ratio, and we condition the diffusion models on the amount of noise added. At sampling time, we use a fixed signal-to-noise ratio, representing a small amount of augmentation that aids in removing artefacts in the samples.\n",
    "\n",
    "\n",
    "[1] - Rombach et al. \"High-Resolution Image Synthesis with Latent Diffusion Models\" https://arxiv.org/abs/2112.10752\n",
    "\n",
    "[2] - Ho et al. \"Cascaded diffusion models for high fidelity image generation\" https://arxiv.org/abs/2106.15282\n",
    "\n",
    "[3] - Ho et al. \"High Definition Video Generation with Diffusion Models\" https://arxiv.org/abs/2210.02303"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b839bf2d",
   "metadata": {},
   "source": [
    "## Setup environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "77f7e633",
   "metadata": {},
   "outputs": [],
   "source": [
    "!python -c \"import monai\" || pip install -q \"monai-weekly[tqdm]\"\n",
    "!python -c \"import matplotlib\" || pip install -q matplotlib\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "214066de",
   "metadata": {},
   "source": [
    "## Setup imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "de71fe08",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import shutil\n",
    "import tempfile\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from monai import transforms\n",
    "from monai.apps import MedNISTDataset\n",
    "from monai.config import print_config\n",
    "from monai.data import CacheDataset, DataLoader\n",
    "from monai.utils import first, set_determinism\n",
    "from torch import nn\n",
    "from torch.amp import GradScaler, autocast\n",
    "from tqdm import tqdm\n",
    "from monai.losses import PatchAdversarialLoss, PerceptualLoss\n",
    "from monai.networks.nets import AutoencoderKL, DiffusionModelUNet, PatchDiscriminator\n",
    "from monai.networks.schedulers import DDPMScheduler\n",
    "\n",
    "print_config()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0dde922",
   "metadata": {},
   "source": [
    "## Setup a data directory and download dataset\n",
    "Specify a MONAI_DATA_DIRECTORY variable, where the data will be downloaded. If not specified a temporary directory will be used."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ded618a7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/tmp/tmpj53lse09\n"
     ]
    }
   ],
   "source": [
    "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n",
    "root_dir = tempfile.mkdtemp() if directory is None else directory\n",
    "print(root_dir)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "645f97bb-6879-4b2e-8fc9-29dd1a6e904f",
   "metadata": {},
   "source": [
    "## Set deterministic training for reproducibility"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9f0a17bc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# for reproducibility purposes set a seed\n",
    "set_determinism(42)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d80e045b",
   "metadata": {},
   "source": [
    "## Description of data and download the training set\n",
    "\n",
    "For this tutorial, we use the head CT dataset from MedNIST."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "c8cf204a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2024-09-23 09:27:05,757 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n",
      "2024-09-23 09:27:05,758 - INFO - File exists: /tmp/tmpj53lse09/MedNIST.tar.gz, skipped downloading.\n",
      "2024-09-23 09:27:05,759 - INFO - Non-empty folder exists in /tmp/tmpj53lse09/MedNIST, skipped extracting.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading dataset: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 47164/47164 [00:16<00:00, 2923.68it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2024-09-23 09:27:22,258 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n",
      "2024-09-23 09:27:22,258 - INFO - File exists: /tmp/tmpj53lse09/MedNIST.tar.gz, skipped downloading.\n",
      "2024-09-23 09:27:22,259 - INFO - Non-empty folder exists in /tmp/tmpj53lse09/MedNIST, skipped extracting.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading dataset: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5895/5895 [00:01<00:00, 2964.04it/s]\n"
     ]
    }
   ],
   "source": [
    "train_data = MedNISTDataset(root_dir=root_dir, section=\"training\", download=True, seed=0)\n",
    "train_datalist = [{\"image\": item[\"image\"]} for item in train_data.data if item[\"class_name\"] == \"HeadCT\"]\n",
    "val_data = MedNISTDataset(root_dir=root_dir, section=\"validation\", download=True, seed=0)\n",
    "val_datalist = [{\"image\": item[\"image\"]} for item in val_data.data if item[\"class_name\"] == \"HeadCT\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cacdb233",
   "metadata": {},
   "source": [
    "## Prepare dataloaders\n",
    "\n",
    "Here, we create the data loader that we will use to train our models. We will use data augmentation and create low-resolution images using MONAI's transformations:\n",
    "\n",
    "1. `LoadImaged`: to load the images\n",
    "2. `EnsureChannelFirstd`: to make sure there is a channel dimension at the beginning of the output tensor\n",
    "3. `ScaleIntensityRanged`: normalise the images\n",
    "4. `RandAffined`: affine augmentation (just training)\n",
    "5. `CopyItemd`: we copy the image item to obtain the low-resolution representation\n",
    "6. `Resized`: we resize the low resolution image (copy we just made) to obtain a low resolution representation to 16x16"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "c7997edf",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading dataset: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7991/7991 [00:05<00:00, 1544.42it/s]\n",
      "Loading dataset: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 972/972 [00:01<00:00, 804.53it/s]\n"
     ]
    }
   ],
   "source": [
    "image_size = 64\n",
    "\n",
    "# Transforms\n",
    "all_transforms = [\n",
    "    transforms.LoadImaged(keys=[\"image\"]),\n",
    "    transforms.EnsureChannelFirstd(keys=[\"image\"]),\n",
    "    transforms.ScaleIntensityRanged(keys=[\"image\"], a_min=0.0, a_max=255.0, b_min=0.0, b_max=1.0, clip=True),\n",
    "    transforms.RandAffined(\n",
    "        keys=[\"image\"],\n",
    "        rotate_range=[(-np.pi / 36, np.pi / 36), (-np.pi / 36, np.pi / 36)],\n",
    "        translate_range=[(-1, 1), (-1, 1)],\n",
    "        scale_range=[(-0.05, 0.05), (-0.05, 0.05)],\n",
    "        spatial_size=[image_size, image_size],\n",
    "        padding_mode=\"zeros\",\n",
    "        prob=0.5,\n",
    "    ),\n",
    "    transforms.CopyItemsd(keys=[\"image\"], times=1, names=[\"low_res_image\"]),\n",
    "    transforms.Resized(keys=[\"low_res_image\"], spatial_size=(16, 16)),\n",
    "]\n",
    "\n",
    "train_transforms = transforms.Compose(all_transforms)\n",
    "val_transforms = transforms.Compose(all_transforms[:3] + all_transforms[4:])\n",
    "\n",
    "# Datasets\n",
    "train_ds = CacheDataset(data=train_datalist, transform=train_transforms)\n",
    "train_loader = DataLoader(train_ds, batch_size=32, shuffle=True, num_workers=4, persistent_workers=True)\n",
    "val_ds = CacheDataset(data=val_datalist, transform=val_transforms)\n",
    "val_loader = DataLoader(val_ds, batch_size=32, shuffle=True, num_workers=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "166e4242",
   "metadata": {},
   "source": [
    "### Visualise examples from the training set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "8c0fe41c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot 3 examples from the training set\n",
    "check_data = first(train_loader)\n",
    "fig, ax = plt.subplots(nrows=1, ncols=3)\n",
    "for i in range(3):\n",
    "    ax[i].imshow(check_data[\"image\"][i, 0, :, :], cmap=\"gray\")\n",
    "    ax[i].axis(\"off\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "76412555",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot 3 examples from the training set in low resolution\n",
    "fig, ax = plt.subplots(nrows=1, ncols=3)\n",
    "for i in range(3):\n",
    "    ax[i].imshow(check_data[\"low_res_image\"][i, 0, :, :], cmap=\"gray\")\n",
    "    ax[i].axis(\"off\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fc99896",
   "metadata": {},
   "source": [
    "## Define the autoencoder network and training components"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b52c4a7-26eb-47e7-8aac-99c62ca88ee3",
   "metadata": {},
   "source": [
    "To yield a 16x16 latent representation from the high-resolution images, we use AutoencoderKL. We train it using a Patch-GAN adversarial loss, as well as a perceptual loss, to boost image fidelity."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "610bd118",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cuda\n"
     ]
    }
   ],
   "source": [
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"Using {device}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "0e4ef480",
   "metadata": {
    "lines_to_next_cell": 2
   },
   "outputs": [],
   "source": [
    "autoencoderkl = AutoencoderKL(\n",
    "    spatial_dims=2,\n",
    "    in_channels=1,\n",
    "    out_channels=1,\n",
    "    channels=(256, 512, 512),\n",
    "    latent_channels=3,\n",
    "    num_res_blocks=2,\n",
    "    norm_num_groups=32,\n",
    "    attention_levels=(False, False, True),\n",
    ")\n",
    "autoencoderkl = autoencoderkl.to(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "bd5197a4-ec30-4f13-9b7a-5e3e43a42637",
   "metadata": {},
   "outputs": [],
   "source": [
    "discriminator = PatchDiscriminator(spatial_dims=2, in_channels=1, num_layers_d=3, channels=64)\n",
    "discriminator = discriminator.to(device)\n",
    "adv_loss = PatchAdversarialLoss(criterion=\"least_squares\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dfd826c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "perceptual_loss = PerceptualLoss(spatial_dims=2, network_type=\"alex\")\n",
    "perceptual_loss.to(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "410911c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "scaler_g = GradScaler(\"cuda\")\n",
    "scaler_d = GradScaler(\"cuda\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c16de505",
   "metadata": {},
   "source": [
    "## Train Autoencoder"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a93437fe-d6ef-42d2-bedd-4da735c59dd1",
   "metadata": {},
   "source": [
    "In this section, we train a spatial autoencoder to learn how to compress high-resolution images into a latent space representation. We need to ensure that the latent space spatial shape matches that of the low resolution images."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "2789508d-9fa8-483e-8b4c-dd17bf2f39b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Loss weights\n",
    "perceptual_weight = 0.002\n",
    "adv_weight = 0.005\n",
    "kl_weight = 1e-6\n",
    "\n",
    "# Optimizers\n",
    "optimizer_g = torch.optim.Adam(autoencoderkl.parameters(), lr=5e-5)\n",
    "optimizer_d = torch.optim.Adam(discriminator.parameters(), lr=1e-4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "830a3979",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 0/75:,recons loss: 0.153782,perc_epoch_loss: 0.505703,kl_epoch_loss: 2163.503702,\n",
      "Validation. recons loss: 0.002920,\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKIAAABbCAYAAADwb17KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiL0lEQVR4nO1d229cV/X+zmUuZ672jJPYTuKkIWnTugEULoUYQlVFDUGCviAk3nhBQkj8CTzyiMQj4rFSHyokQEiteGikvtAggqCFtE2jxE1iJ7bj61zPzJnL+T1Y3/aa7X1mxsVNHH6zpNGMZ87ZZ5+9v70u31r72ArDMMRIRvKExX7SHRjJSIAREEdyQGQExJEcCBkBcSQHQkZAHMmBkBEQR3IgZATEkRwIGQFxJAdCRkAcyYEQd9gDp6enP89+7Ek6nQ5834fnebBtG2EYwrIsdDoddLtdWJYFx3EQhiGYOLIsCwDQ7XbV8bFYDIlEou+12u02Go0Gms0mwjBEKpVCLBZDu91GGIZwHAetVgudTgexWAyu68KyLHS7XQDo6QPFsizYtg3btmFZlnrx2DAMVT/ZV55jEnmePEfet/7OPpnGSLari2xH/i7vg/3sdDpoNBpYW1vrO8bAHoB4kMTzPDz//PMoFAoYGxtDMplELBZTg5BMJpFIJGDbNrrdbg8oCCCKnBApHHCCvlQqYXFxEXfv3kW9Xofrbg9dEARot9uwbRuO46hJ4LvevpwsAlG/JoHEfstJlsfrbZvAq4NLP78f2KLGRP8sv5PX5EIdRp5KIAJAq9VCo9FArVZDvV5HGIZKMzmOA9d10Wq1eoDY6XSU1gR2gMnP/B6AAkk8HkcqlUI2m8Xs7CxmZ2exuLiITz/9FJubm4jFYgB2g0ACT9dQOhj6Tar+dxRITOeagGjqk64RTefo3w9zD3spY3gqgdhqtfDw4UOUSiXEYjGEYYhOp4NWq6WAxYHh30CvRjRpBl1r0XynUinE43Hk83lMTk5iamoKExMTWFlZwerqKpaXl1GtVvtOfJT0M4f9NFC/6wyj5aIsgakfpnZMpv6/AeNTCcROp4NyuYxGowFg+2ZphjudjjIJrusqTSX9Fg4azaMORClBEKDZbCIIAty9exf37t3Ds88+i+PHj2N6ehrj4+PodDqo1+u7gBMFiCgTKz/r3/XTnMNe0+QXRonJB9Tbi+oH52Iv8lQC0bZtJBIJWJalNBxBBewA06TlKDJ4MYkMGrrdLjzPQzweRxAEeO+99xCLxfDcc89hdnYW+XzeeG5Uu6a/owBI6XQ6kabTpAkHBSAmcJvaNbkVUW2zXemmDAvIpxKIAOA4Tk+kSRDKweOAAL0TY5oA04SxXcdx0O12Ua1W0Ww2kUgkkEwmsbCwgDt37ii/VMogf2uYgGmY36Oi4X4iAaL7ilHB0KBARbYnz/+fNs1hGCIIAriuu2vVdbtdFWiYgKhPgMn86DQIv4/FYojFYuh0OgiCALZtIx6PqyBIislkRpk6eU29Db1P8l70Y4YVk1aOomP6XUfvkz5ucvwHyVMJRGB7YDj5pijVpKUA7OLi5N9RE2HSqqRvpF9KDlOebwK37pOa2tdf0k0w9ZX3IrWXpIfot/WLpvX77gdEnSdl3yQQ/+c14jAaYK9aYj/ENIGDAoQoTcd29CBAb5dBl+l4KQSOrqV0TagDqZ9fauqv7EdUgGWSpxKIwJMBWj/h4PcDhe7kmzRiP001KKLWrYK8ljzWdI4e2OnaWWp7ebwJ2Pp1h5GnEojDqvvHBVa5+qO0Yj8fii6GbIOgpnntN/HyPF2L6cGIKfuiiw503U3QjzGZcF77fzqzYjILB0WiHHqTXyjBJY+PSv3Jz1HaVheTlosK0EwuxaC2dc3LBcTrReXHdXkqgQgcLNNsmgx9IqUmksdG+YXUhsxf68GQbENvJypgksHMMCY0yqfV+zvomsPI/zQQn7TWpPllX6RZlaZZN6cEoV6hI0Wf4ChTKY9jZDuMHyv/No11VECig/x/OljRzZlJ9jII+yVR5sxkmnXNQQAyNWnbNlzXheu6ys+SXKU03yaQm0QWeEQBUC4O3ZUwjalJI7J/ugbvJ08lEIHeYgaTWJalKmMeh5giYAkQaiNZ2iWB4ziOepE4t20bsVhsFxAty1Jg5UTrIAV6ub5Op4N2u61eUiQHKMXkBpisjMlF0O93kDx2IEoqQKbp5GDQJFWrVdi2Dc/zkEqlkMlkkEqlYFkWxsbGEIvFVA6Y2Y5KpYLNzU1sbGygUqmg1WopbaMXzcrPQRComkZgO4XYaDTQ7XaHArScKKmxdTBKkX6g67pIJBKIxWKIx+OIx+PqexbbEmzSd5Tj1+l0jKY4DEMFwCAIduWCCVQJ2Kg+y/sdZIaHsVyUxw5E2bFms4lWq6W0QLfbRb1eh23bmJmZwaVLl3D58mW8+OKLSCaTCpS5XA7Azo0SaPzO932sra3hk08+wfXr1/H222/j7t27SKVScBxHVVNblgXf99WC4EA2m80eDTVITL4Shd/L/nEBEIjxeFzlr1nUm0wmdwGRmkwvqpUL2fQ9sFOLSSDypWvKVqsF27YRBMGutKWu9XVf1ETxDAtEKxzSo9+PrQJhuF28ms1m0W63VUVJEARIJBI4c+YMvvOd7+DcuXM4c+YMCoUC4vE4stmsmgy2I/82XYOrularYXV1Fe+++y5+//vf4+bNm+h0OkrjUIvw3bIstS2AVd76hOjC3+PxeE+5mU6Z8DNNruu6qvA2mUwik8ko7e95HlzXVaaZGlH31QgoOZ5yLCRIWbPJ4/nearV6Xs1mE41GQ4FTT9+ZyG0diFw4jUYD6+vrA7HxWDWiZVlIJpOqvq/dbmNiYgJzc3OYm5vDF7/4RUxMTOD48eNIp9OqwED6LxIsyWRStS01AifZtm1kMhmMj4+jUCjg5MmTeOutt/Dee+/h4cOHaLVaSKVSqo1Wq6X2sQRB0AOeYe8vCnymqFYGJdSCqVQK6XRa3T/NtYyyJQilRqMbIsdE99lYNkdQ87wgCNTL933Yto1ms6kWIudB5zzl56hAZhh57KY5FothdXUVnufh/PnzmJubw4ULF3Du3DkcOXIEnU5HgRXYLkz99NNPsbGxoQY6DENUq1UcPnwYhUIB4+PjypQRDFKLOI6DqakpvPzyyzh06BCOHj2Kd955B5988gmCIIBlWarWsNvtIpFIKE3wWUSnNvhZmmWa3EQioYCXzWaRyWSQzWaRzWYRj8eRTCZ7tLfMGROIQRAoMMlryYyN9BXpL+tAbDQaqqpI3ke73e5xDUwLTGcEBkXwujx2ILbbbXieh69+9av48Y9/jIsXL2JyclJFiSztoty7dw9Xr17FgwcPEAQBgO1JaDabmJycxNGjRzEzM6Pa4L4Vz/MwPT2tdvq1222k02m89NJLyGaz6vt///vfaLfbSCQScBwH7XYb8XjcqIGiROcB+c4J0Qt2aZIJMs/zkE6ne0CYy+WU2ZZ9k0CkJqQZbTQaqt/UeDotI3lEAMqNoXtELSiDKFowzp8Etgw++bdpPAbJYwUio9MLFy7gpz/9KV5++WV4nqf8G+mrxeNxhGGImzdv4vr161hdXYXjOPA8D4lEQoFxZWUFi4uLmJ6ehuM4qFQqqFaryGazeOmll/Diiy8ik8kobeG6Lo4dO4YrV64gFothZWUFCwsL6Ha7atCl5tmLmOgOU2Spc4Z0JUjb8DODmEQiAdd11Tjp2o6Rv05yy2vLrAqDMFoMAprBI/sg+2ZKO0rNp98z3w9kZsW2bRSLRfz85z/HpUuXlHPNvcWSvvF9H2G4vY/47NmzKBQKCIIAY2NjmJmZwaeffqomgBqM9E2pVMLa2hpWVlZQrVZx8eJF2LaNzc1NjI+PI5fL4cyZM+h2u1heXsabb77Zs0VU38b5WcSULSEICDDP8xQLkM1mVd9yuRzGxsaQSCSQyWRUwEIzyqCDppTXarVaPVqQi1qvSyS4aO5pomni5bYLHqePBc20qQaTn4exJpTHCkTP8/CrX/0Kly9fBtBLSjNiS6VSCIIAnuehXC7j0aNH8DwPJ0+eRKVSQbPZRK1WUz4UuT6+08w5joNyuYwbN26g0Wjga1/7Gg4dOoQwDNFoNOA4DmZnZ/GTn/wE169fxz//+U9lNkkl7UVkJkL3kfSUHa+RSCSUaWak7HneLhqHC41mEOiNyk1coG6KCSxqYfqdMhJmcEht7TgO6vW6AiLvk6LvEdd/30uwt29A5ACQ/JUqng7w97//fbz22msIw1D5IrxBmiUACmD3799X+0XCMFSR5NbWFjqdDprNJkqlkvKlbNtWgMxkMpiamsLy8jI6nQ7eeOMNfO9738OpU6d6+K3p6Wn88pe/xA9/+ENlnklxDGtWgN3ZBclvSjDQ5EnukABkxEwfMZlMIpvNKosRBAHq9briXqVLI68rfURpkqkN6Z9KCoyRMQMTtkPzLU247oOazLMci2FkXzUiJ1JGV81mE5Zl4dSpU3j11VdRrVaRyWQU9cIojv5hqVTC8vIygiDA4uIiyuVyTwYB2DYX6XQajUYDhw8fRiwWQ7Va7YmqNzc30Ww2EYvFMD8/j1u3buHUqVM4fPgwxsbGlE/keR6eeeYZXLhwAdevX0en01E+kU6WR8kgAldmQghGmc7TzZ/UUtJflTSNDDIYTDDqp/mWwYT0wdkn+pdSY9JVou9OX5xjKXPfnHMdbFJTD+JgKfsKRN6czAAwIj1z5gzm5uYUb0eQAlDPklldXcW//vUvLCwsYGxsDL7vq3RdtVpVAQeJZkbCku7hQHFwG40GlpaWkMvlEAQBbt26heeeew5jY2Nq0IrFIi5duoS///3vCogmUzRIpE+km2YGSpLIpgmmGaa51H0yjivbpfXRX5IjlEDUHzrAxaDPnfQLmWYki6AvGNkX6VPLe38iptmytosMmBqSg5lOp3H8+PGe1Jw04wwkbt68if/85z/wPA+lUklpuVwuh0QigVqtpsx8uVxGMplUx+TzeWXGOfn1el0FA6lUCqVSCUtLS5ienkY2m1VaLx6P4/z580YQ7XUM5GcJJpkbpsaNStVR83GxMSCRpLPUijTReoGFHqxIjlXm4GUfOR9y0eiLWy6WfuPwxAht13XRaDRU5zkw2WwWMzMzauXISQiCAI8ePcKdO3cwPz+PIAiQTCZRr9dRqVSU1tNTbSyC8H1fTRoDEWq1drsNx3EUb1itVuE4DlZWVpQf1u124TgOZmZm4Hlejynci48oRU6wpEtMZlmWfUmTxnuSBLNMw+kA1F8SmHokS19RB6nMXknQyWOkDOMjPpGomTfDpzD4vo9Op6MoF9lhaqOtrS3cunULt27dQqlUQrFYVI/v4AD4vq8Gn4MjB7Tb7Sq6hxq53W7DdV2sra1hcnIS4+PjaDQaqNfrePjwIYrFIvL5vBpwZmgIbOkbDjIv0hTpWlFOoj7B1I66RmT/AajfSU/pYNTfw3DnYVQcL7bNxcpFqmtluRBMcxsFqn4ZlScCREaH8Xi854FImUwGx44dUwCitNttxfdVKhU4joN0Oo1qtQrXdZXGK5fLitmPx+MAAN/3Ua/XkU6n4bouarUaHMdBMpnsWfnr6+uoVCooFosAoGidSqWi/gaAZDKJyclJLC8v78qG7EWGPZ6aRAYgDOwIUPmsReZ+STrzM18MWuh7E9A8XwYZUmtK31JqY4JeN/vA7u0MMjLXSfsnBkSSpKQYGOFms1l1E7LTQRAgHo9jYmICQRBgY2MDjuNgc3Ozh3bI5XLK9FcqFRw+fFitag4oB51awXVdHD16FLFYDI8ePYLv+5iYmEAikUCj0UC5XFZBCwAcOnRIkcJcNP8NjcMxoU8sqSgJWI4XgUQ/l+4N/WkWiujmWKbx9EIIti8LbOn/Sa0v29OLICQgdY3ZD4im8YiSfQUiB6Rer6PdbqvyJpZHyZUdj8fx0Ucf4erVqyiXyzhy5AhyuRy2trZUFEkTUi6XleNdrVaxvr4Ox3GQSCSwsrKCIAgwOTmpAMbsALMYtVpNZWZWV1fhui48z8PRo0eRy+XUYGWzWcVv7pVP1P0lvVRKih6k8HgCiMFEGIaKUeD46cGIXsbFIghTJbY0nfybfZdEOQHIJ+XqfqlO2URFx3uxJvtKaAdBgHQ6rYpNJUXAgAOAMrO3bt3CvXv30Gq1sLm5qUhwAFhaWsLY2Bg6nQ62trYAQBU11Ot1LC8v49SpU3AcB+vr69ja2lJg5nXHx8eRSqUUhbS5uQnf9/HMM88glUqhUqmoZD+rwS3LUr5i1GNLdNG1AMdDz4IQgLxPWg0GJKRaCH49xysBoZtKLjzZH11T6gCSPJ+kfWjmpWaU3KQOZlnxrvvIT4S+YTECzWW9Xlc+HTvo+35P1Yltb+eVqclarZby8+RN8Ulc8joff/yxqjhJp9OK6snlcvA8D/fv31dVOel0Gvl8Hu12G1tbW0ilUigWi2i320oDO46DZrOpnkDLgGKYdJ/uE1Ej6vSNLCbgixYjHo/3FMNKMNKsy/0rklqhX0vQsz/8ftBL187Sh6QrYOItdc5S3rOJ7I6SfSe0aVoAKJ+n0WhgY2NDkc/AtlbkRPu+j0QigWKxiGQyiXw+r/g9rkZWWm9ubqrf1tbWYNs2pqamUCgU1CRms1mk0+keLm5ra0vxcaVSCRMTE4pABtBDN0kedK+EtvwsS7YIEFmWL6NdWS0eZeZMGQypCflOl0ICUtIw+oJhWzJ4MvmH0r/leSYKp1+fo2RfgcjVQUeYN7CxsYG7d+9iampK0Tuu6+L8+fMAgJs3b6LRaKiKE+ZTwzBUVM7Y2Bji8bgCWCqVwqFDh9DtdpHL5ZBOp9VgMlhJJpM9Dn42m1VajxG2/K8C3W5XZW1k/d8g86xHidRCJsJY0jey3It+KzMatBbMalAjytQcX9SaiURCmX2pmfQyMxM3KKkj/WXKLZuCLoopwzRI9j1qlh2hH7S+vo7bt2/jW9/6Vo+WOHLkCGZnZwEAW1tbyGQyyucrlUpKS9RqNQUSmleW0MscKs0UV7TruqhWqwCAXC6HWCyGfD6PTqejcs4yx8oIXg7iMANp4hGjCGDpq0mTL0Grk8n8XRdJmDPKBnb2zhC00uQTiKZUnQx+9OwNaR1dM+raUQf3sLLvZWDSpyLZXC6XMT8/3xPA0Pzl83kcP34cxWJRBRaO46j/zeF5nnKcpRnhCiVYmdHhw92ZrG80GqrShCT3+Pg4pqamkMvlesDDIIuEtqQ3BokOLKm9eK+yTEt/ycp0mUaTGk/uKuTYmqJoy7J6CG4CUWpgtiMBReCZiHOpGeV15WL9LACk7CsQ9cHmqmw0GlhcXES1WlVbOjnB2WwWzz77rFrRtVoNruvigw8+wOrqquIfJV8o+UqWUgFQPqA0kY7jIJVKIZVKYXV1FZlMBtPT04q2YVvU3PSTpIbZS2ZF/6w77rpWlD6cLDZg8ETNL/PT1E4yHxyGOxkTmmi6NzqQ5Tl6NC3LvDjWEoi8F90HpfTLwPSTfdeIXN28EWA7aJmfn8eHH36IL33pS2qrJG+GPk0Yhuqf+Tx48ADXrl3Do0eP1BYB8oKsReROvkQioVa+XPEymmy323jw4IHa1Tc+Pt4zqUtLS7h3754CL2XYgKWfsy5z5Jy4WCym/N9qtaoAw99lTprn6ZSNTP8BO4uVm79oRWiGCRgJaJPfJwlzfWH1YxA+K5kNfA4+YrvdRiaTUZoF2I7i7t+/j3/84x/4xje+oTopsxf8zra3K2u+8IUvAABu3LiBcrncMyG6+a1Wq6hWq8qHJGkeBAFKpRIKhQLy+TxyuRwmJiZQKBQUeEmSLywsYGFhQVFLNEl7Nc/yZZoQ3S+TIJJakZqQ/+MlmUz2aCUJGI4z99vIXX06sS61mqwblXyi1JR6lC/z4LpJ1mmgvWjHfc+sMLsB7ESJ3Aj129/+Fj/4wQ8wMzMDoHePipygVCqF06dPw3Vd1Ot1fPzxx1hZWVEZE2DbpJ84cQIfffQR1tfXcfbsWQBQm7nJES4vL+MrX/kKAODrX/86XnnlFYyNjakJIhjeeOMNtFoteJ6n/Eqp1fuJnAgT/SK1CjUVCzDIi+p+GqNfBlDpdLrHh9T9MWpZWcpFrcfjeC80vbpPKNN6DPh0EErA6vev//3EgGjqlFz5vu/jzTffxC9+8Qskk0k0Gg1VqcMByGQyyjdLJpM4duwYWq2Wqsjudruq1Mv3feTzeXiep56SUCgUekjvhYUFXL9+HT/72c/wwgsv9EwUzeLf/vY3vP/++6o4lamtvSTtdRpEN2HS1HE86Lv5vr+raNaUOZHvMurl9zJXLFN/wA61JlN2Mq9MIr/RaKgXv6d1kf9STveHo8bjiQAxygTx3fd9/OY3v8Hp06dx5cqVnkd0cHCBHT9zYmJC+VKsJWSQwowIAJTLZQDYVePXbrcxOTmJV199FSdOnECz2VRAD8PtlOTDhw/xhz/8AXfu3FGaW1beDDuQulmWk8N2OPEyEJB8qe/7aitFvV5XizWZTPYUkchCVelT6nNBc69TLDIzQgVAsHER8kVASo1oyphI//CJByuyA/pEyM+//vWvUavV8Nprr8HzvJ6ghU/lArazHfl8HsViEQ8ePEC5XEa1WlVFFcePH1cTzA1IdM75H0t/9KMf4cSJE8jn8z3RPAAsLi7iz3/+M/7617+i1WopMj3qER/D3HuUJpCakKBgerJWqwHY2RJAYIVhqPrSbDZ7ghPTpPO+ZI0j0BvlSt9Pf9YNX77v94CQWtPEI5rm2HT/g+Rz306qdzCRSODGjRt4/fXX4fs+vvnNb2JmZgaZTEYNFE01sE3OHj58GNPT0+rf1T569AjtdhtTU1MqnXf69GlVJGFZlgLimTNnAEAFOHToFxcXcfXqVfzlL3/B/fv31V4abmU1mddB9xnlN+kLlAuCe3BknabUNjSrLOtngkCW8MsgR6YlJQWjpxNNwKPPKs2y9BdNJtnkG/ZbKP3kc9GIXPmmFRMEAVKpFN5//31sbGxgfn4ec3NzOHv2LI4cOYJ0Oq2OJxAKhQJOnz6t8tC5XA6NRgPHjh1DoVBQjxfhnhiSybZtI5VK9dQrttttzM/P45133sHbb7+NmzdvotVqoVAowPd9ZdJoMocZyKhIWX420SByUxMnWUamTGdyC0MsFlMLTHKLBKXUmJJ8pgvAPeG+76t3ugQSmHJXoL4lQZ9r0/zr4zKM7Otj6UwrX/+bT2sIwxAbGxuIxWJ4/vnncfHiRbzyyiuYnZ1FNptVAOLgsi1W9ZTLZaTTaeRyOUVI02/iJMgKZ/pBt2/fxh//+Ee89dZbuHPnjrpOLpdT2w3i8bh6TuMwZWDUGDJjETUeBCEBI1Nv3NHHhwTI92w227MpX6brqA1ljpkAlEAMgqAHiFIbSi3JrRnNZrOnBtEUpESBzbIspfWH+Q/2nysQTZJIJFCpVGDbtvLbNjc3AQAnT57E3Nwcrly5gnPnzikujQQ4nXNqPCn07ST4WKVdKpXgui7+9Kc/4Xe/+516oJMsaODAsbiAPpm+vcEkMpWmR7NyPPSImtqXWk2WhZE75JMfUqlUT+ZFFkPITfuS99RJaj5yjppQj45lQSwDmSjKRt6XyWfkeLZarScLRJOQJ+NjRViYwCwLV169XsfZs2fV7rrvfve7uHDhAk6ePKn4NBa08oYJUqb5XHf7gUp37tzBu+++i9dffx13795VZpcg465B9k/6qQwehgEiizIGAVGfOOlLyapygpIPYeJj9+TjjaWvaFlWT7GDng+mZqP2832/pwBWFjtIADJlq8+xTsybwEhlsLGxMRg7+wnE/RQ61d1uF8lkEsViEVNTU2pHXiqVQqFQQLFY7OEiK5UKtra28PDhQ3zwwQdYW1tTmRnSMzKKHDZrMqivABQQTdIPiBKQkieUvp/+kqZZf/C7CSRc6DpdI31SGdhEBSeSvDddQzINBCIr7PvJgQSiNFnUorIKGNiJbpmV4HkEMLBd+sXaRql5eSzw2SpFdKHp0qtaTCCnmZTBmB4E8CWrb2RULAEpq6zlXmVeS4JEcofUgPyO/eJx8nx+1oFooojkAiOBXiqVBo7hgfv3FmEYqkyDXlcnJ4xFEFzhAHqc9m63i0ql0sPLATuTzsBmmBTeMH3mu/wsfVmaS52u0duRC0QWo8oAhwBl27KoQb+e3haBJ+kd2XedrJYaW/ZRLn6T+7LXBX7ggAhAVUkDvfloGbCQY5MTK1epfJd7T3SNuN+iaxApEhzSBzUFeXyXwYbOz+lFs/Je9T7pGphANPl1sk1+HgQsnap6ojzifoj0k/TVJlcrC2ilFuAxPI7ZCUnyyuN4vf0QvX1+ZwJk1Pn6S/bPVKmtuxf65Ou+ovTdZH91kJnONx0X9ZtpsQySAwdErn4CTAIyisfSfSIOOOsipd+zH8HJoP5TpDmNAule2zWZQP03U9TO303g1MUEIFNwJc+NiqyfWiACUOCRq4rURr8gQ488dZMk29grEIYVk0/Fe+HfUdpOaiipsfvxs/20qHwfZCp1cJk0uald2Sf9evLeBsmBA6Jt28hmsz2Ugl63KP09E5gkEIHdDvXnAUApUTxi1LUlSPi7DDp4jMka6KCV7/Jc3YfTX3sBrX5vUQA0JR6i5MABkfWGwE6xJ29OOth6fZ70fYAdrcIIUzro/H0vpkMXffKkgy6/47Gmz7zHYa4j3RK9rSi+T/ZR9zFNGpQSZdr1Y0xaVH63F6tz4ICoa5EoR7rb7aoompqTv/Ml/5mjrj0A9OwJMWkJBjyWZalNXZlMRpWivfDCC/j2t7+N27dv49q1awB6gRU1kSbNZQoMdGDRxJu0qzzetEj7BTCyjX7+nf67/pt+j1EWyyQHDojDiG3bSCaTPaQsiV/L2slxst5P+ph6YYCsgDFNYLVahe/7mJycVNzkl7/8ZVy+fBm2bePDDz/EvXv3jP2MApc+OTRhg0x5VFBC+kpqJJPm0/vF3/v5lKbjTG2Y+iot0CB5KoHY6Ww/mElP7rN0S2Y6dBDIHCoja32ApTY4evQoisUicrkcpqenMTk5iVqthmvXruH+/fsolUqqsFUXEwCjgGEKDqL8St2P4+8y2IkKcPqZXT3IMgVGen/7LbK91HQ+lUC0LEs9U3FyclKV/8t9H9wqwIGhNgTQsxNNPsmKbctJotNdqVSwtLSEu3fvYnNzE0tLS6pUzOS/sa0o0yQnkhpRTpopejWlAnXqyvRZHzv5bjLN8jfTcfLapvuL8of7yVMJRGB7MPifmeRDQOXTtQhEvRJFlr73AwCP5cNBy+UyarXarocc8domLaOD0RQYDBOlRo2BScPpRHWU+R3UNsUE6qhF1i8w6ydPLRDb7bbSUqurqz0BizyGYJRaRe5I082LKfLWj+OeGJr6fkCToptgk082CLjye+nL6tJPE/bzIU1+oMkUm65n+m3YxfXUAtG2bVQqFVQqlV2pO/lcHIrMU8voWS/bivIXacLlc3F4PZpW2e6giDnqmH6TaQp++D6sOdY1XdR5UX6gPE9v57+RpxKIDDKo3UjlMCKWmRkp+qPVGDn3uw6BLTcphWGoCnD14/i33g7F5JPpn/Xjor6TPl1UMBQVcJjaluMSBUKKdE3kAvx/ZZrpu7mu2/NEBvkkCGD3U1uBHZNm2jxv0g66vwns8HQcfEkjRTnwuvTTUnpf9POifMqooEne9zDX0xeFPFaCVDfvJhAOS98MXRg7kpF8nvL5lqKMZCRDygiIIzkQMgLiSA6EjIA4kgMhIyCO5EDICIgjORAyAuJIDoSMgDiSAyEjII7kQMj/AZaygcwcRnNPAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 5/75:,recons loss: 0.055186,perc_epoch_loss: 0.259082,kl_epoch_loss: 2720.869604,\n",
      "epoch 10/75:,recons loss: 0.047029,perc_epoch_loss: 0.211522,kl_epoch_loss: 2314.558471,\n",
      "Validation. recons loss: 0.001608,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 15/75:,recons loss: 0.042698,perc_epoch_loss: 0.174223,kl_epoch_loss: 2112.795490,,gen_loss: 1.012134,disc_loss: 0.002280,\n",
      "epoch 20/75:,recons loss: 0.035483,perc_epoch_loss: 0.102338,kl_epoch_loss: 2271.543911,,gen_loss: 1.012229,disc_loss: 0.002381,\n",
      "Validation. recons loss: 0.001392,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 25/75:,recons loss: 0.030027,perc_epoch_loss: 0.057049,kl_epoch_loss: 2255.536555,,gen_loss: 1.012236,disc_loss: 0.012159,\n",
      "epoch 30/75:,recons loss: 0.025783,perc_epoch_loss: 0.041187,kl_epoch_loss: 2198.212172,,gen_loss: 0.993313,disc_loss: 0.022697,\n",
      "Validation. recons loss: 0.000970,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 35/75:,recons loss: 0.026168,perc_epoch_loss: 0.023821,kl_epoch_loss: 2140.541582,,gen_loss: 0.633519,disc_loss: 0.151763,\n",
      "epoch 40/75:,recons loss: 0.025719,perc_epoch_loss: 0.017355,kl_epoch_loss: 2062.614804,,gen_loss: 0.479063,disc_loss: 0.183541,\n",
      "Validation. recons loss: 0.000736,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 45/75:,recons loss: 0.024476,perc_epoch_loss: 0.015675,kl_epoch_loss: 1969.286549,,gen_loss: 0.510046,disc_loss: 0.174579,\n",
      "epoch 50/75:,recons loss: 0.023567,perc_epoch_loss: 0.014090,kl_epoch_loss: 1853.637946,,gen_loss: 0.489276,disc_loss: 0.174202,\n",
      "Validation. recons loss: 0.000862,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 55/75:,recons loss: 0.022395,perc_epoch_loss: 0.012438,kl_epoch_loss: 1734.904024,,gen_loss: 0.462214,disc_loss: 0.178832,\n",
      "epoch 60/75:,recons loss: 0.021742,perc_epoch_loss: 0.012144,kl_epoch_loss: 1622.974387,,gen_loss: 0.528392,disc_loss: 0.165096,\n",
      "Validation. recons loss: 0.000838,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 65/75:,recons loss: 0.021505,perc_epoch_loss: 0.011629,kl_epoch_loss: 1531.166383,,gen_loss: 0.506063,disc_loss: 0.167129,\n",
      "epoch 70/75:,recons loss: 0.020647,perc_epoch_loss: 0.010862,kl_epoch_loss: 1449.738802,,gen_loss: 0.516405,disc_loss: 0.174172,\n",
      "Validation. recons loss: 0.000698,\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKIAAABbCAYAAADwb17KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAnUElEQVR4nO19SWxb1/X+x3meSQ2WRMuWbMeW7cR2nMHNPDRtnC5aI0bQAQW6bRZdF9m0uy7bRYEumrZAmiJt0TRBgviXJgWKjG6dBFHseLYlaxYliuL4SD6S/4XxHV0+P0qUozgK/jyAIInie3zv3u+e853vnPtkaTQaDXSsY1+xWb/qC+hYx4AOEDu2SawDxI5tCusAsWObwjpA7NimsA4QO7YprAPEjm0K6wCxY5vCOkDs2KYwe7tv3LJly5d5HZvWWHiyWq2oVCqw2WxwOBxYXl6Gz+fDrl27UCgUMDk52XScxWLB17VoxWtf6x4sFgvq9TqsVqu8z2KxAAAqlQosFgvuvvtuvPbaa2t+ZttA/P/VrNbrQaNWq8lruq7DarWiWq1icnKy6W/AxoLwqwA0P2+tz1XBqgLRYrHAbrejXq/j3LlzbX1mB4htWKPRkJVvs9lQq9XgdDphs9lQLBa/9M/+OhgBqY4TABQKhbaO73DENUxd7TabTQbc4XDA6XTK4AMrYenrAp6NNHpCYGXM1NfWsg4Q1zA15JAL1et1+b3VQLc7AWtZO+fZqM/6ImbkiFyc7VoHiG0aQVir1QSMuq7f4P3WAsWXARr1Gm4VKNtdgO1Ghw4Q2zSr1YparYZ6vQ673Q6LxQJd129Y+WbAVCdnvaAxm8hWIU99TX3Paj+3en8712UMv+p3Rot2F0YnWWnDOKD1eh2NRgMulwvAdYmCWfVqtpYEYnyP+ppZ1mwGdmOmq75ntZ+NWe96zHhtPJ/6OV97IHJFqckAsAIKhkn1vdVqVfibzWaTcGrkeesZfJXz2O3Xh6tarTb9TZ18s8kxnm81eaSVXNNOIqQCwfhe9bzqGLb63LU+T9Uajdew1r2Y2aYDIgFC/sVBY8bKG1dFVAKEx6tArNVq0HVduB2ApnO049HWe/2qrQXMtY5XQWsGtEajIfdgJjCr7zXLas0WhXHhr3adqwG1nfulbTogWiwWuFwu6LrelAxwcOghbTZb02v8zomp1+uoVquw2WxwOp0STuv1uoTYjZZZWk3sal5uPddg9GStOJiRv/F340JsFVaN1MDs53ZsPfe26YAIXA996kAaNSqbzXaDJ6CpP9OL6rou5wRWPCEB+2Vbqwm5mYWgZu+tgMZxWS3UmpXxzMCoHmMG5FaLySxsr2abDogMywQKw40ZTzQCtJVHMgtTG+0N12Nmk9eKs5lxMePvrd5jdp9mHm61a2x1vPFavigYNx0QaeR5DKP8buSJNBWAxveSLxr/Tj610dfdLidsJzQbJ1LX9abfzUJmtVptmW2r/FFN3IzXa8ZJ2wXxzdimA6LFYoHD4WhakWbJCrNYY3WjXq9LYmIEsvF9X4YZQ996jlttcjkWvA9VUeCxahSh1qmWHxnOOT5Gj6e+v1aryTmMUWY9QPzaJivASssVV7bL5ZIvm80Gu92OWCwGl8sFh8PRJJ4ytJdKJWQyGRQKBRQKBZTL5SbvuF7i3Y4ZORR/NuNqZp+thjl1smu1mnhuh8MhYLFaraIYWK1W+P1++P1++Hw+BAIB4cdctARtsVhEoVCQcSqXy0J/dF2HxWJBpVIxBb/KIdXrMFuAX3v5plQqwWq1IhqNYtu2bdi3bx9GRkawbds2JBIJ+Hw+2O12eDweuN1u8QD0gNVqFeVyGcViEZVKBYVCAYuLi7h27RrOnj2L0dFRXL58GZlMRrpENsJa8SqzezQ71vgeeq9arSZRgr/b7XZEo1EMDQ1hZGQEe/fuxfDwMNxuN8LhMFwul4wJv2j1eh2FQgHFYhG5XA7pdBozMzMYGxvDxYsXMTU1hQsXLkhnEaMRj6X3NaoWa93janbLgWi325HL5eB2u8VLuVwuufC+vj488MADuP/++/HAAw8gEok08ThOBDNnejlao3G9M8bn8yEWiwFYCdcMNZlMBhMTEzh16hReeeUV/Oc//xEvabVa4fV6UavVJNNuF6xmCUO7x6nH84sezOfzQdM0eL1e3HHHHXjwwQdx+PBhDA4OIhKJIBgMNh1PHql6KuM9+P3+ltcyPz+PiYkJ/PGPf8Tbb7+NQqGAarUqSaTL5UKxWJSf1QqTSgVUr7mWWRptjtZGdGg3Gg1Uq1WEw2FomoZYLIbJyUnouo79+/fj2LFjeOqpp9DV1QWPxwO73Y5qtYpSqQRN05DL5ZDJZJBOp7GwsAC32y1h3GKxIBgMIh6PIxqNIhAIwO12y4BXq1VUq1XxoAxRMzMzOH36NH7xi19gamoKHo8H5XIZuq7D4/HAZrNJJWW1+zKamTzS6jjV29D7qPKMw+HAsWPH8L3vfQ+Dg4MIBoPSDwlcX5zLy8tYXFzE559/LguO4NA0DY1GA9FoFFu3bkUoFEIsFmvSYo1Jm6ZpKJVKmJqawm9/+1v861//QqFQQCAQQCqVEhCy/m4EunpvMzMzq44fcIuBCFy/4XQ6jXg8Lp7x4YcfxvHjx3HfffchHA7DZrNheXkZ165dQyqVQrFYRKlUQjabRTqdRrFYRDAYFNDMzMwgk8nA5XIhkUigu7sboVAIHo8HkUgEyWQSvb29ktzQyCfz+TyuXLmCX/7ylxgdHUWpVGpKhtZa1esNQ63Ayc9SNdJAIIBnn30Wx48fRygUgsPhQLFYRDqdxtLSEkqlEgqFgvxOAJE/V6tVpNNp5HI5BAIBJBIJ9Pb2wmq1IhgMIpFIIB6PIxaLwePx3ODVK5UK5ubm8Prrr+Pll1/GuXPn0Gg0JJoZOaGRezcaDczOzq45Jrc8NDscDiHcuq7j6NGjePrpp3HnnXciFotB13VcunQJi4uLmJqaQjabRaVSQblclkGu1WooFAqS/bEjmOS7UCjA4XCgUqng7Nmz+O9//4uRkREMDQ0hGo3C6/XC5XIJ2Xe5XEgmk3juuefwu9/9Du+99x4ymQyq1WpTt/FatprQa5Z9tqpa8O8OhwNHjx7FD3/4Q0QiEdTrdSwsLGBubg6zs7NIp9Mol8vCienJgZWtDaqQz27pRCKBcrmM8fFxVKtVdHV1Yffu3di5cycCgQAcDkfTfHV1deHJJ5+E2+3GCy+8gNOnTyMSiWBxcbGJIhnHYj0L9JYDsV6vIxgMolAo4ODBg/jWt76F22+/HcFgEOVyGdeuXcPp06eRz+eRz+eFm1QqFeEoDodDwGi32yV5KZfLACBhvNFoYG5uTrLOXC6H7u5udHd3IxKJwO/3w+12S+Jz+PBhIe9nz55FJpO5YT/KzVqr8K3KSvV6HQ6HQzLVHTt24Ac/+AEikQgajQYmJiYwPj6OpaUl5HI5yXgZYtW6OhcQQ7vX6226BvK8xcVFlMtl4eyBQADJZBKRSERAZrfb0d/fj4cffhilUgm6rmNubk4WqFlhYVMDsdFooFAooLu7G8ViEY8//riAUNM0LCws4PTp05iamkK1WhUQqAOsShqapsFutyMQCEhYqVaryOVyAkpmj7lcDpcuXUIul0M+n4fX60UoFML27dsl5AHA/fffj7GxMQDA6Ogostnsuu5vLVurqsLky+/349FHH8WhQ4dQq9WQTqdx7tw5pFIplMvlG0BXqVSQz+dht9tRqVTk3AR6IBCQMVtcXEQoFAIAkbMKhQLOnz8PXdextLSEeDyO/v5+ASQADAwM4Dvf+Q5qtRr+9Kc/YWlpSc5hVnBYj91yj1ipVOD3+7F7924cOXIEPT09cLlcmJ6expkzZzA7OysND2x6UBsV1NDDcGS32+F0OiXz5XH0ltz+WSqVEAgEMDMzg4WFBVitVnzjG9/A4cOHRQJyOBw4fvw4yuUyUqkUcrncuu+x1USsJVgzMQoGg7jrrrvw7W9/GwCQzWZx6dIlzM/PS3TQNA26rotHLBQK0DQNoVBIsmWV63o8HmiahmKxiOnpadTr9aawzoSG92yz2XDnnXfi9ttvRyQSAXCdw/b39+PYsWO4ePEiXnzxRTidzqYMn6A17uNZy24pEK1WK/r6+lCr1fDss8/i4MGDcLvdyGQyuHLlCq5cuQKfz4fFxUXRAyuVimmZLxQKycQxq3U4HMIVqR9yEoDrITubzaJQKGB6ehqpVArLy8vo6elBMpkUzulyufCjH/0IqVQKqVRqXV7RzIwitVkZjQvB4/Fg//79OH78OIaHh1Gv13H16lVMT0/DYrEgn88LTyYnJoUhvfF6vbBYLCgWixI1qtUq8vm8zEOlUhFZiJ40FoshEAigXq9D0zR8+umnWFxcxOHDh9HT0yNaZiKRwM9+9jO8//77mJ+fF0FcDc/GDqk1sfGFRnid1mg0oGkajh49iqeeegrj4+NYWFjA+Pg4xsfHoWkaZmZmJEkgX+JKLpVKkozMzc1B0zSUy2XMz89jdnYWmUxGVnexWEStVsPS0hKWl5cBXCfu2WwW1WoVoVAIw8PD6O7uxokTJ/DOO+9I1YaAfuihh/Dggw9uyH0bExe1F5IJl67r2LFjB44ePYpDhw5B0zScO3cOc3Nz8Hg8wneZtbL64fP5EIlERCOdnJzE4uKi6Hu1Wg2lUglutxuBQADVahWpVArRaBTd3d0AgHQ6DU3TxAG43W44nU5J9qampgRUdrsdkUgEzz33HHK5nBQWqDLwIQTrqeNvqEdUw4u6r4MiMwDEYjE888wzeP311/H+++/j2LFjyOfzSKVS8n6v14tSqYSlpSWUy2WZNIrZnFhN08TzMVR7PB7xMB6PR7Jzl8uFYDAo52G2TEH23//+N3Rdxz333AO/3w+bzYYjR46gWCzi4sWL+Pjjj+F2u0WPm5ubk99XE7LNKiaqF6QnYaXkyJEjiMVieOGFF7Br1y7s3bsXmqZhbm4OLpcLmUxG7rtarUr2T63V6XSiVqtJVYQJnuolyTHHxsYQCAQQDoeRz+cxOzsLp9MJh8OBaDSK8fFxJBIJjI+Po1gs4sCBA9i3bx8AIBwO49ChQzh27BheffVVuFwuWCwWSS5rtRqi0ShKpVJb2Nnw0GwcYDW54OT29vbi0qVLePzxx4XfsLqSSqUwPz8Pu90udVJ+J9BtNptIFfSKBDHFbXpUisPLy8vIZrOwWq0IhUKSoDCs6LqON954A8PDwwLSarWKwcFBPPHEE7h8+bJw1JmZGfj9/qYNVbz31cpd/G6sPnB8BgcHEQ6HsbS0hHQ6jUqlgvn5eSwtLcFms0kIVsVuejEATVIKn0TB5MzhcCCRSMDtdgt9mZ6eFtGfr3s8HpRKJYyOjmJ4eFg03VqthitXriASiaC3txc2mw19fX145pln8OGHHyKbzaJcLqPRaEghoFgsNnXPr2ZfCkckENXmAmZ3W7duRTAYxDPPPINYLIaTJ08inU4LzwsGg7LS1T0iDEXUxRhimMgQeGpdlO9lqLfb7bDb7ZK9F4tFIddTU1PQdR3vvfceHnvsMSQSCTidTmzfvh2PPPIIPvjgA3z44Yfi8dWwupZuqFZZgOZym8qjBgYGsHv3bgwMDOCOO+7A9u3bce7cOaTTaYkGBCLDOc+r1n15z2waYZhkqY4JnMVikQoNm4fdbrdEtHw+L59FD+r1epuowIEDB/Doo4/ixIkTKBQK4igcDgcWFhYk0VnLNhSIxrIWPRg1Lq/Xi8HBQdRqNWzbtk2yXcoThUIBwWAQkUgEhUJBdDy1XMWVTi+mekB+qQBWMzljiCcfZFLj9Xrx8ccfI5lMCg9yOp1IJpN49NFH8e6778JmsyEcDsskG8m4EZBmupr6nR61Xq9jYGBAeKumabDZbJidnUU2m20q6fH9qjdm1wy9oiqK22w2WdiUu3K5nPyuelmG0mQyKePv9/tRrVYxNTWFSqWCnp4eAZjX68UjjzyCkydPolAoSNSwWCwt69lmtqHJihqSjZMBAB6PB11dXTeAxul0SptSsViEruvI5XIiuVCCYPgA0EScueLVCaA35gTWajWp0HCg6BV0XceWLVtE5L18+bKQfSYDd999twjL5J7G3XzqvRpttZANAG63W2rk6nN1FhYWpDGEuirHmQuK51JrzBxXp9MJj8cDr9fbVK4sFAqyuOkNa7WaeEGPxyOL3OVywe/3w263Y2lpCWNjYyJrORwOHDhwAAMDA8KtydfVa17LNjxrVnvnCAyGkXA4jEQigc8++wxjY2OiXfHv5GXkc5VKRQabHJHmdDrhdrvh9XqbMjZ+LgDJ5tQePk4UPTW9YTweR71eF2+RSqVQKpXQaDTgdruRTCaxe/fupk1ZakvUWqYuEgJXBXA4HIbf70cmk5GFwMYPt9vd5P0A3PCkCVU64f2pi53gpSSmGhcsVQrWp7lYdV2Hw+FALBaD1+vF1NQUpqenAVynFj09PRgaGoLP55MIwGj0lQBR7Rox7h9mzbK7uxu//vWv8cknn2BhYQGlUgnLy8tSN1UrAwwz+XxeZBiCU211Ij9koZ+fz9IfAR8MBhGNRiUcMxHw+XySTPn9fjidTkxOTiKdTgOAeJeRkRHouo5sNishT+WkqplVT4xVB5XKBINBhMNhnDt3Dv/4xz/wySefwOv1oru7G1arFdlsViaWoKSH5+/MVjk+KlDVeaAWyIzb4XDIona5XNA0DVNTU/L3fD4vC9bv92NpaQmXL19umoNt27bB7XYLaFX+2o5tOEckEAki8hm3241EIoFCoYA33ngD3/zmNyU7LJfLMrEej0fOwXDCbFFd1UtLSxLCKNUYW8eA65WcTCYDi8UCn8+HarWKTCaDVCqFarUqQm2pVEIsFkOj0UA2m8W1a9cQi8XQ09MDn8+Her2OcDiMSqUiNIIeZK3SnjFpUb8YQdiaderUKfzzn//Evffei+9+97uYm5tDo9GQ1jmGSy4ClWP6fD4AQCaTaaI/NPJbLkrKPKVSSZqIORdWqxWZTEZa7YrFovBtdkal02l0dXWhXq/D7/fL/KtUq10tccOzZqNsw5Bqt9ulgRMAXn31VezZswdutxvxeByVSgULCwvS0aHrOgqFgmhfDN28SbaLlctlAR0HNpPJiNcKhUISasbHxwUULP8Vi0VcuHABe/bsga7riEQi+Oyzz+R8NE5ApVJBd3c30uk0AoGAyCetOnTUceDvBCS9EXW+a9eu4erVq2g0GhgYGAAAjI2NoVgsYvv27bh27RqcTicAyDHAyvYBu90uEhW5r9VqlTHjIpyfn0c2m0Uul2tqIiEVGRgYQH9/PxYWFhAOh+F0OkUqSyQSkrzMz8+jq6tLuuHpbTlv1G/bsQ0FIlelpmky6GoXyCeffAJd13HkyBG8/PLL+MlPfiKDSc3J5/NB13X4/X4h5G63G5VKBcVi8YbwxnBKHsQwE4lEkMlkkMlk4PF4EIvFsLi4KA2vnJxCoYB8Po8PPvgAgUBAmgdGRkbkvKQH8/PzUgGxWCxSuTALt0YzvkctW9rtdpw9exa1Wg3JZBJerxcfffQRJiYmcOTIEUxMTEh1iEkEKQpw3ePSU1osFhkvTdNQq9Xg8/nEq+dyOcRiMUkmcrkcLBYLtmzZgmg0iqmpKYyNjUmXFHC9cYRjRifBxmbgerf3lStXpChBL6omdGvZl1ZrNkoWXHFvvfUW7r33XkxPT0PXdWmQ5Qaner0umRtvQm3b57mdTmeTrkgAUqbg4M3OzooU4/P5pK7q9Xphs9mkHEjqEAgEEAqFsGvXLgwMDAjpp65mt9ubEjKjmYVh499V7qR2zly8eBFbt27Fww8/LJ0yTqcTs7Oz0mG0tLQk1Qvqq9ybQkBy3Nxut4CiUCigXq8jGo3C6XRi165dCAaDwjXJJ4eHh9HX14d8Po9MJgOfzyderVAoIJvNIh6P44477kBvb69QA+OjndVI2I5tuEc0eiy+zkL6mTNn8POf/xwHDx7EwYMHUalUpL5MXUttegVWtpgaKxgcRBWoalXF6/UiEAhI4uJyuaQsx6pEJpOB3+/Htm3bEI/HUSqV4PP5xBuQM1ksFuGlzJp5LcDaLWBmnpLXysk8deoU4vE4nnjiCcTjcXR1dYnwXiqVZPEwQQFWHpdHD81yIRMXTdPEa3OR5vN5WYSqPktAU0/kuSuVCrxeL6LRKOx2OxKJhHBDjiM5JHkiAOGJ7diG15rNpAkA0sh66tQplMtlHDhwAH6/X7wMPQO5BrNYnovAUz9LlRs4oGo1hRojM3EmTfTOuVwOlUoFTqcTXq8Xuq4jnU5L0uPz+eB2u6VlKp1OC19Su5jbHRujqVpoo9HA+fPncejQIcTjcWzZsgUWiwV9fX3YsWMHLl26JKVM8kpy01KpJP/xwO/3N7XRqXVn3qtafVFlL1IOjlMsFkMkEhGvxvMHAgERq61WK8rlclOJjzigYtGObah8Y9S01NfptdjuxVotEwo2JJAzqdKI6mXVG1W9ntfrlQllAsMkptFoSEsUsLI90uVyIR6PIxwOC8fkudTQyiw9m822bI2/2fFStUjuOwEg+qfaIUNlgd6Li4zcjX9nSOQ+cAKNWTF5O/+mFglIO8LhsOwLoielOE5Zh+fN5XLI5XJNj4rh+dq1DfOIxpqr0Tuy9MONP7xYJhbcwsnv5GLGrJOfxXDJFazqaDT1bxxgXdeFI3q9XjgcDpGM2BgQj8ebPEepVMLExIRkg2blOn6eOhZmph6rJi3MMundgJWddZRa2M6v1n+tVqvwQLVkyJY2Sj0q51bBoo6jev1+v18+hxUatoYZ+fH8/LyUA9XrUCPVWrbhyYo6QWaejNUOvmaz2WTrJ9u4uEJZvSDIyFn4N1UG4XeGBFYk+EQDtXLAOii7b4DrIZ0D7vf7EQqFBKj5fF5CI72PWQmzHZ5o/N0oc7GfUrXu7m7hyAzLzFzp0VSOTEVAFbFZteIi54LkNRg30fN4yj9er1e6sRmNeM/cR0PHoS6sdinMl5I1cwCMHThqKYkD53K5sGXLFtx2222Ym5vD8vKyTDZbw9QsUZU9VO6ogkCtFlD952omVyQf4mBHo1Hp5KY3AVa0yYsXL8pxTFi4AMyslYzD8TGW5ABIZch4XCgUQn9/f1OPoVpGI1hUb0TjHKiJCIGsVr/UayYIOZb0slarFR6PB+FwGKFQSBbO1atXJVGiJ/R6vTfMy2q2YUBU3bsxNKs3yS5jhmEOSjAYRF9fnzQlMHyooDauWrW2THLOEM6M2uPxNE0uCXQqlZIda8wQ+dXb24vu7m7ZkMXOcZ6XmasZT2wHgOo9qIuUvNbIrcLhMPbs2YNTp05JFCFPU72czWZDLpcTjwigiWLU63U4nU7U63Xx9uTlajgnlSHv5DXabDZ4vV7E43H4fD7h2RMTE9IzSSdjRqlWsw31iCqRN9OPyDlOnjyJQ4cOiZjNpKG/vx/T09NwOp2iKxpbn4AVOYdhjKEDQJOAqlY8uBeDXd/crmq1WjEyMoJ4PI5CoYADBw5g165dAl5uRbh48SKq1Sq6u7vlwQBq+5RR2DYmbip/pqkemfx2eXkZMzMzKJVK4qEtFgu2b9+OCxcuwOFwyHZZtbrCTfSJREKSEiOvZnJCQKpUhSGUXi2Xy8Hn8yEcDsviCYVC2LZtGwYHB8VTlkolXLhwoUm14Ngbx2Q1u+WbpyKRCJ5//nm4XC48+eSTAK6DJBaLYd++fdJwkM/nsbi4KNUQh8MhYCK/UVcs68vkf3a7Hel0Gl6vt+nRIRS3I5EINE0TMBWLRdx3331IJpNNmeX4+DjeffddLC8viwykaZopyQfMH0tn5M3q7wylXLyjo6N4/vnnMTExgfvvv1+y166uLtx33304c+aM9AiyZY5Ctc/nk52NvH41eVEbRAhMhnEVtE6ns6m2HQgE0NPTg9tuuw1DQ0MCOpvNhjfffBNzc3Mytpzn9XrEW/7IEeB6uj84OIj+/n5YLBb09PTgrrvuwgMPPIDt27ejUqkglUrh8uXLGBsba+rg5oplEyY5Db2K6gVZzmLFIZ/Py6Spj20Lh8N4+umnEY1GJXu2Wq3QNA0nTpzAb37zG4yOjkqozmazwpHUrLdpYBXSbjbERoVBzS5dLhdCoRDC4TB27tyJgwcP4p577sGePXukTzOVSmFmZka6kvhkC5bseD61U0kNt0xUVK8OrDwIlI0M8Xgc+/fvx44dO254INb8/Dx++tOf4uTJk02tcUyquIOwnWfffCVPegiFQrJrzO124+rVq7hw4QKmpqbw/e9/X0AaCoXQ29uL8fFxpFIp5PN56crO5XKy74R7fFU6QH1S13VkMhk4HA6Ew2HxrExeotEoRkZGkEgkxPNyf8hnn32Gd955B2NjYxK+2H3DewGa+wuNoGs3k1arEtwums1mMT8/j3fffRcfffQRfvzjH2NkZAR9fX2IRCKIx+NYWlrC+Pg45ufnAUDkL5Wvqx06Km2ilqjeB/m7xWLByMgIdu3ahf7+fuGENE3T8Nprr2F0dFQ4obqFQb2nduyWP+mB0gCrKAx1y8vL4h0ee+wxaUdn/TefzyOdTmNubk6K6/RaJOtGXsqJcLlcUiHQdV0eZNnV1YWhoSEkk0k5H4v6165dwxtvvIF33nnnhk1ArL3Sw6yWoLQyFShGz0gep2kaNE1DoVDA//73P1itVjz00EPYs2cPYrEYfD4fnE4nAoGANHgsLCwgnU43JW4MxUzK2JiiNqTw+tkU0tPTg7179yKZTN4gwdTr1//97V/+8hehLEYOb/Tya9kt94gEj3rj5BSTk5N4+eWXkU6ncfDgQWzfvh1Wq1U4EsVmunru+CPfobfk5JZKJdhsNoRCIUQiEcnIfT4ftm7disHBQSmlASv/r2VychJvvfUW3n77bVy9elX4IKUf7rNRM/n1ekKjUdwmzWAnNR+8uby8jP/7v//D7Ows7rrrLtx2223y1Nyuri4MDg5KiZJ7xHm/pCaq4M/PUcFisVhky8LIyAgGBgZuAGGlUsGlS5fw17/+FZ9++qmcxxgdODZfSda8ljEsMKlgCQpYkVtSqRT+9a9/iWSSzWbhdruxd+9e7Nu3D/39/RgaGhIpKJPJoNFoIJfLYXx8HIuLiwCuh6hgMCgg4c41j8eDZDKJHTt2oKurSwDAa8hkMjhx4gT+/Oc/Y2JiQvbrst5M4Jk1eJglKma/q6ZKOmriopbsWHGxWq0YHR1FPp/H2NgY4vE4gsEg+vv70dPTg507d2L//v2IRqMAINtJ+fjmhYUFLCwsyGJUKQYz8Gg0ir6+PgwNDUnvI03XdYyPj+Oll17C73//e2nZU/VMVdtVk6E1sXErk5VGY+UhTNybQu2KoYlidjabRX9/Pw4dOiSPZEskEjh06BDuuece6aoBVkphDNuapglAKPH09fUhkUgIUedgcUMWm2n/9re/4Q9/+AOWl5ebdEwAsrOO+zhUAMmAmgBTfd34GieMUhEXqNpkyk7pvr4+LC0tweVySQ16y5Yt6OnpgdvtxsjICEZGRtDb2ysPWVJteXlZmmJLpZLUq7lAg8EgfD5fU3ULuO4FS6USzpw5g5deegmvvPKK3If6rG1m5uSZbBBp5/mIX8mDOtmM4PF4JNtVH4vLCWcHTG9vL5LJpDyAMxAIYPfu3di1axe2bNnS1PumEmWW7dTsVg1HqtB79uxZ/OpXv8Kbb755w3tZ8OfKJx8iNzIK1atphqoRiMYKDSeSzQcAmh5BR69J8AwMDGDnzp0YHh5GMBjEjh075Ele6u699XA2NrU6nU7Mz8/jlVdewYsvvijPRuQDThm61TFT76ter29OILZj6s2QdLMGzA1Qu3fvlpCUTCYxPDwsWbHacUIzPnSTYfjzzz+Xp6FOTExIc62ZB2tl7YjXq5matKghmkbvonbqsPpBTxQIBDAwMCC7ARleh4eHkUwm5SH47YKxVqshlUrh73//O1577TWcP39eFAM1EeLnq5HDmC1vykcXr2WcBLXrWG10YGgFrguvzP4YomKxGLq6utDX14fBwUF0d3ejt7dX9qdMTk7i/PnzuHDhAs6ePYvPP/8cCwsLKBQKsv9XfTAo+dpa1wy0BmI7P6vHEWjqedQ6stGrAysZPPst1Q31fr8fsVgMwWAQ3d3dGBoaQl9fH7Zu3Yquri4BaLlcxvT0NM6dO4f33nsPb731lqgaatJB2YcUiNfWyutz6+lqtmmBqDYeqKtfnSz+80h6TGaHwMqGdXb7EEwk8Hw8ndoapQqyDMnAjf/tyeyagfX/j5G13mMEIsfCeKzalcT3qUmDxWKRxMPhcEgt2u12S9LCRUTgzc3NyXjxvEwoOd7q5xj1Q9U2paC9lqmCq7o5yJih8u/GHkSCqFKpYHp6+oYnQ3DSSLLZPACs7LVQqcHNyDDtHtMOUI1e1kwgNvubClIu0EajIbsj1SYPAkld6GoLF48DViQuY6lyPVTGzDYdEIGVPkR6QYZHlUPRc/HGufLVVif1ParcwiqJOmitPCE5ULt2sxPxRc69WjlRBahxDNTFpn4ZPRsXKLNsAtXY2NCuZGVmmxKI6qAA5pKIWng3Drb6ncerAOVxa03szVz3zdhq3sTsNRV4xvcaM3E1wVGPV6kOX+PiNV6POn4qcPm+VuO1nnHcdEBUwwBXm5pJ8sbULFJtP1NFVeMgGLNR1fupnpYFfGNNuV0zC5/t3PcXfS+9t67rTZqeCi4A8h4zMPNeuSHfZrM17Wfmrkm2kbUSrNe7KDcdEIEVnmd0++oXa8xqbVaVZxhizBIdgozPsaFOSE5E3tmKk61lZhNsZq0WTDtm5rX4OxcUs2aVH6uL0RiC1XNwfOgYOB5MClcD883YpgSiGQCB5o0+qpTBUKOGILW9Xd3dxsFrNK5XcdjDp/InVY7gNbRjNxvS2z2O16fem3p9FotFHnLKzffGZIeJnFpDVmkNF7K645GLGVjZ+qo2IG8EL950QDRmiqqZhUhjF7Ix9AIrlQqjsaKj/q5aK2+leoAvmi2qx7ZKNtT3GXVG4/uMG8/MrpcLE0DTeYzyk1rxMSY3Kuc0hv6bsVv6XwW+rmY24bS1JB5jeDebMNXLt/p8gkrN5JlAGOkIvRV5olGHVPVSfr7KrYGVMG4EovFaW20JWC8wN51H/LqYUXdrNfBmCVM77zMaz68CSs2SVflGDbWq1qf+vNrnq15e9Ypm8kyrBbTeCNHxiOsw1SMAN8pMN2urHW8mYamyidl1GUOs8di1PDg/t92E64v8ndYB4hcwIwDU180AZLQvAuD1AmAtz212XV/WtZtZJzSvw8zC1xflRjfz2Wbh3iw0r2UbmWi1Om/HI26gGTNXvkbd0iijrAaajbqOVq+3IwWZ3Y+ZbYS++bWtrGw2a+U11EyzlZSyEROp2mqJTruep129sl0gmdEQlTe32//YAeI6zDgpRsljI7yfGT9rxdmM+t9qntgImLV4YCvParyuVsL/errBgXX0I3asY1+mdThixzaFdYDYsU1hHSB2bFNYB4gd2xTWAWLHNoV1gNixTWEdIHZsU1gHiB3bFNYBYsc2hf0/5gIh6/juY1IAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "max_epochs = 75\n",
    "val_interval = 10\n",
    "print_interval = 5\n",
    "autoencoder_warm_up_n_epochs = 10\n",
    "\n",
    "for epoch in range(max_epochs):\n",
    "    autoencoderkl.train()\n",
    "    discriminator.train()\n",
    "    epoch_loss = 0\n",
    "    gen_epoch_loss = 0\n",
    "    disc_epoch_loss = 0\n",
    "    perc_epoch_loss = 0\n",
    "    kl_epoch_loss = 0\n",
    "\n",
    "    for batch in train_loader:\n",
    "        images = batch[\"image\"].to(device)\n",
    "        optimizer_g.zero_grad(set_to_none=True)\n",
    "\n",
    "        with autocast(\"cuda\", enabled=True):\n",
    "            reconstruction, z_mu, z_sigma = autoencoderkl(images)\n",
    "            recons_loss = F.l1_loss(reconstruction.float(), images.float())\n",
    "            p_loss = perceptual_loss(reconstruction.float(), images.float())\n",
    "            kl_loss = 0.5 * torch.sum(z_mu.pow(2) + z_sigma.pow(2) - torch.log(z_sigma.pow(2)) - 1, dim=[1, 2, 3])\n",
    "            kl_loss = torch.sum(kl_loss) / kl_loss.shape[0]\n",
    "            loss_g = recons_loss + (kl_weight * kl_loss) + (perceptual_weight * p_loss)\n",
    "\n",
    "            if epoch > autoencoder_warm_up_n_epochs:\n",
    "                logits_fake = discriminator(reconstruction.contiguous().float())[-1]\n",
    "                generator_loss = adv_loss(logits_fake, target_is_real=True, for_discriminator=False)\n",
    "                loss_g += adv_weight * generator_loss\n",
    "\n",
    "        scaler_g.scale(loss_g).backward()\n",
    "        scaler_g.step(optimizer_g)\n",
    "        scaler_g.update()\n",
    "\n",
    "        if epoch > autoencoder_warm_up_n_epochs:\n",
    "            optimizer_d.zero_grad(set_to_none=True)\n",
    "\n",
    "            with autocast(\"cuda\", enabled=True):\n",
    "                logits_fake = discriminator(reconstruction.contiguous().detach())[-1]\n",
    "                loss_d_fake = adv_loss(logits_fake, target_is_real=False, for_discriminator=True)\n",
    "                logits_real = discriminator(images.contiguous().detach())[-1]\n",
    "                loss_d_real = adv_loss(logits_real, target_is_real=True, for_discriminator=True)\n",
    "                discriminator_loss = (loss_d_fake + loss_d_real) * 0.5\n",
    "\n",
    "                loss_d = adv_weight * discriminator_loss\n",
    "\n",
    "            scaler_d.scale(loss_d).backward()\n",
    "            scaler_d.step(optimizer_d)\n",
    "            scaler_d.update()\n",
    "\n",
    "        epoch_loss += recons_loss.item()\n",
    "        perc_epoch_loss += p_loss.item()\n",
    "        kl_epoch_loss += kl_loss.item()\n",
    "\n",
    "        if epoch > autoencoder_warm_up_n_epochs:\n",
    "            gen_epoch_loss += generator_loss.item()\n",
    "            disc_epoch_loss += discriminator_loss.item()\n",
    "\n",
    "    if epoch % print_interval == 0:\n",
    "        msgs = [\n",
    "            f\"epoch {epoch:d}/{max_epochs:d}:\",\n",
    "            f\"recons loss: {epoch_loss / len(train_loader) :4f},\"\n",
    "            f\"perc_epoch_loss: {perc_epoch_loss / len(train_loader):4f},\"\n",
    "            f\"kl_epoch_loss: {kl_epoch_loss / len(train_loader):4f},\",\n",
    "        ]\n",
    "\n",
    "        if epoch > autoencoder_warm_up_n_epochs:\n",
    "            msgs += [\n",
    "                f\"gen_loss: {gen_epoch_loss / len(train_loader):4f},\"\n",
    "                f\"disc_loss: {disc_epoch_loss / len(train_loader):4f},\"\n",
    "            ]\n",
    "\n",
    "        print(\",\".join(msgs))\n",
    "\n",
    "    if epoch % val_interval == 0:\n",
    "        autoencoderkl.eval()\n",
    "        val_loss = 0\n",
    "        with torch.no_grad():\n",
    "            for batch in val_loader:\n",
    "                images = batch[\"image\"].to(device)\n",
    "                reconstruction, z_mu, z_sigma = autoencoderkl(images)\n",
    "                recons_loss = F.l1_loss(images.float(), reconstruction.float())\n",
    "                val_loss += recons_loss.item()\n",
    "\n",
    "        msgs = f\"Validation. recons loss: {recons_loss / len(val_loader) :4f},\"\n",
    "        print(msgs)\n",
    "\n",
    "        # Plot reconstruction\n",
    "        plt.figure(figsize=(2, 2))\n",
    "        plt.imshow(torch.cat([images[0, 0].cpu(), reconstruction[0, 0].cpu()], dim=1), vmin=0, vmax=1, cmap=\"gray\")\n",
    "        plt.tight_layout()\n",
    "        plt.axis(\"off\")\n",
    "        plt.show()\n",
    "\n",
    "\n",
    "del discriminator\n",
    "del perceptual_loss\n",
    "torch.cuda.empty_cache()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7108b87",
   "metadata": {},
   "source": [
    "## Rescaling factor\n",
    "\n",
    "As mentioned in Rombach et al. [1] Section 4.3.2 and D.1, the signal-to-noise ratio (induced by the scale of the latent space) became crucial in image-to-image translation models (such as the ones used for super-resolution). For this reason, we will compute the component-wise standard deviation to be used as scaling factor."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "ccb6ba9f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Scaling factor set to 0.8571630120277405\n"
     ]
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    with autocast(\"cuda\", enabled=True):\n",
    "        z = autoencoderkl.encode_stage_2_inputs(check_data[\"image\"].to(device))\n",
    "\n",
    "print(f\"Scaling factor set to {1/torch.std(z)}\")\n",
    "scale_factor = 1 / torch.std(z)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b386a0c2",
   "metadata": {},
   "source": [
    "## Train Diffusion Model\n",
    "\n",
    "In order to train the diffusion model to perform super-resolution, we will need to **concatenate the latent representation of the high-resolution with the low-resolution image**. Therefore, the number of input channels to the diffusion model will be the sum of the number of channels in the low-resolution (1) and the number of channels of the high-resolution image latent representation (3). In this case,  we create a Diffusion model with `in_channels=4`. Since only the output latent representation is interesting, we set `out_channels=3`. \n",
    "\n",
    "**At inference time** we do not have a high-resolution image. Instead, we pass the concatenation of the low resolution image, and noise of the same shape as the latent space representation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "92f3e348",
   "metadata": {},
   "outputs": [],
   "source": [
    "unet = DiffusionModelUNet(\n",
    "    spatial_dims=2,\n",
    "    in_channels=4,\n",
    "    out_channels=3,\n",
    "    num_res_blocks=2,\n",
    "    channels=(256, 256, 512, 1024),\n",
    "    attention_levels=(False, False, True, True),\n",
    "    num_head_channels=(0, 0, 64, 64),\n",
    ")\n",
    "unet = unet.to(device)\n",
    "\n",
    "scheduler = DDPMScheduler(num_train_timesteps=1000, schedule=\"linear_beta\", beta_start=0.0015, beta_end=0.0195)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fb22b1a",
   "metadata": {},
   "source": [
    "As mentioned, we will use the conditioned augmentation (introduced in [2] section 3 and used on Stable Diffusion Upscalers and Imagen Video [3] Section 2.5) as it has been shown critical for cascaded diffusion models, as well for super-resolution tasks. For this, we apply Gaussian noise augmentation to the low-resolution images. We will use a scheduler `low_res_scheduler` to add this noise, with the `t` step defining the signal-to-noise ratio and use the `t` value to condition the diffusion model (inputted using `class_labels` argument)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "25d9d3e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "low_res_scheduler = DDPMScheduler(num_train_timesteps=1000, schedule=\"linear_beta\", beta_start=0.0015, beta_end=0.0195)\n",
    "max_noise_level = 350"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "aa959db4",
   "metadata": {
    "lines_to_next_cell": 2
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.005906,\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKIAAABDCAYAAAAf6t48AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAfLElEQVR4nO1dSWxb19X++Eg+zjNlTaalWJbiyHWcIGncCUnbFCgCp0GTougimwJdtUAXRbfZZONNF1m2aJcFuiuKbJI6MVpvUteJ3cax4imyJMuSKInzPD2S/0L/d334/CjRlu16wQMQFMk33OHcc77znXOfbN1ut4uhDOV/LNr/ugFDGQowVMShPCEyVMShPBEyVMShPBEyVMShPBEyVMShPBEyVMShPBEyVMShPBHiGPTAiYmJfd+s2+2i2+3C6XTCMAxomoZutwtN09But2Gz2dR37XYb3W4XDodDnWez2dRLHsPvAKhrdDqdnms+jLZ3Oh0AgK7rcLvd8Hq98Hg8cDgc6v4AYBiGejWbTTQaDTSbTbRaLRiGodrM9sr2W/Wn2WxC1/WeYx6k/XyXL3Pf5LU5zrItAHrGk/PH73m+nNOtra092zewIj4ssdvtquPspByQdrvdc3yr1epRUL40TYPdbgcApZD8bBiGupe8/sMQqXBUdqvvZf9sNpvqt2yPeYKlclDMiiPvYyX9jjHfa7d+WX3frx3ys6Zpqn+dTgdOp3PP9lIeqyLabDYYhoFWq4XR0VE899xziEQiaLfbCAQCcLvdcDqdaDQaKJfLKJfLqNfryOVy2N7eRqFQQKPRUBNdr9eh6zo8Ho/6zEGx2+3KMnY6nYdiFeXgsx8A1AIwT06n04HNZoOu6z2WndYHgGojFyFf/E4qp5zUvRSOx1h9b76GPM68ELiQdF2Hruvwer3w+/1wu91wu91ot9soFAooFovIZDLK0+12XyuxDZprfhiuGdiZNA6y1+vtsWq0ZG63G4FAAD6fD4FAANFoFLFYTClpsVhEOp1GLpfD5uYmisUi2u027HY7nE6nslS0ktJlPKjI8zVNg8PhUO/9+sl781i+APQoI7Bj+VutlnLldO3si9vt7qtkQO8i4OcH6bN0v4Qcss3Se2maBl3XEQwG4fV6EYlEUK/XsbW1hVwup7zZ2tra3vd9nIrIVU+MCOx0nMpD4eB3Oh04HA6lZB6PB6FQCKFQCCMjI2plVioVrK+vqwHgqqQVomXaT7ulSFzHCZcKQNjgcDiUJXE4HOplNSa0sBJP0joahtHXzQ3qrmXbzedZqYCVpZT9lS6Yv+u6jlgshlgsBgDY2tpCPp/H+vr6ru0DHpMiyk7LYETXdTXQVhjGPNF8EQQzWAgEAkgkEhgbG0O9XseVK1ewtram7tvpdJTlvd92U6xcJY8xDyGV0Ol0Qtd1uFwuOJ1O9b15EgkfuACJO/l7sVjsCQrMbdvPIjP3d7drSWvYb1FwnAOBAEZHR5HJZLCwsLDnvR+JIsrISWI08wRItymP4e9UREaa7KRcnfJYu92O0dFRPPvsswiFQrh9+za++uor5PP5e4Kg++kH20crbY4wzRhOWkQqJPsqxwG4q+Bsvzye5ySTSTQajYHwnxWeNB9ntoaDWEbzdc19p8j+aZqG8fFxfPbZZ7uOM/AILaKmacr90h1JygZAj2KacZxUSnk+cDfythoMTuzk5CSOHDmCaDSKZDKJixcvDtTuQYbD7JrluVZtslIa8wRTaRkE0Io6HA6srKygXq/3nPcg0u3uUGfADibvh1fNbebnflbQqm9yPgdxzY8kau52u2i1WsoCyOhSWgD+LmkWGVlysJrNZo9iNpvNHqwlJ0dakc3NTYTD4b4BhVW7peXjte12O1wul1ISt9sNXdd7AL08r9lsol6vo16vo1aroV6vq98khjQrlc1mQ6vV6rH8XHz3K2alkdyrFQ/L+1nRS3J8zNfvZ00Jhwb1RI9EEc0BCAfW6XSiXq+riZCT4XA40Gq11GRZBQN0zwx2zHiSwmjNZrMhn8/fg692k06noyJW4K6bdbvdiEajCIfDiMVi8Pl8cDqdcLlcsNlsaLfbKsioVqvI5XLI5XLIZDI9wQewY/24YKTwGgzOuAiazabq427W0MzJWvGTUoHk3xJHy2PZZnohKVb0j5yH+6HNHimPyIYQ4zmdThw+fBiJRALHjh1DIpGAz+dTVqJSqSCdTmNtbQ23b9/GnTt3sLW1pQaEkaU0/ebBJJFKa2Kz2eBwOCzdD0UOJF0kFxPdZTQaRTweRywWw4EDBxAIBOByuaDrOoAdJWLEW61WEQgE4Pf74fV64Xa7Ua/X0Ww20Ww275k49oHtpwfh99KNmqNWeZyZWuHf/J0eiZE8I3EyEm63W0XupJMMw0CtVlNUklmBJV6X42men73koSmi1U0ZaMRiMXzve9/Dm2++ienpafh8PoTDYcULcpJImLZaLZRKJWSzWVy+fBlnz57Fp59+imq1qty+1f05+I1Go4dTlO7OfA7faQE9Hg/C4TDC4TAikYiaMCpWIBBAKBSC1+tVtAywg185kT6fD16vF7FYDJOTk8jn86hUKiiXy0in08jn8yiVSj3tlMrYLwiyEiuvIL+j8vH9wIEDGB8fV1bd4XDA4/FgYmKiJ1XZbDaxsbGBW7duYXNzE+VyWfG1hmHcYyFpdWU/7kf2Hawwp0jrR1fi8Xhw9OhRnDp1CqdOnUIsFkOxWFTZErfbjfX1dSwtLSl8xZWp6zpGR0cxNzeHSCQCTdNw4cIF/PnPf8Znn32GfD4PAEoh2QZzXno3MUfEdH8jIyOYnZ3FzMwMDh06BLfbfQ8PSWxI5ZbUC4W0jd1uR6PRQLVaRSqVwuLiIpaXl7G6uopcLge73d5D7FsFPJIxoFhFvWYryfP8fj+i0SgOHTqEZ555Bm63GwAQCoUQiUQQiUTUIgoGg6rPjUYDq6urWFhYwMLCAlZWVpQy1mo15YX6qRAt5SMPVmidnE4nnE4narUaNE3DU089hbfffhuvv/46Dh48iGw2izNnzuDjjz+Gw+FANBpFJBLpCV6oyPV6HY1GA3fu3MHS0hIOHDiAmZkZvPjii/ja176GDz/8EL/73e+wvb3dA4aJMc0FCLsJVy0pE4/Hg6mpKRw5cgRzc3OYnp6Gruv3BB/SdRFTShfFtGMkEoHf74emaWg0GoroNQwD1WoVzWZTKflugYCVdeG4kYs102OGYWBkZATz8/OYn5/H2NgYwuEwDMNQwZOu6zAMA1tbW6jVagCAcDgMACqbw2t4vV5MTk5idXUVS0tLsNvtqFarShmtslePzTUTRzWbTUUwz83N4Z133sE3vvENaJqGhYUFfPrpp0ilUqjX62rFEYtQgWhV6U41TVMubHNzEzdu3MDXv/51/OhHP8LBgwfx7rvv4vLlyyqtpOs6Go3GwG2X7tjr9eLAgQOYmJjA3NwcpqamMDo6Cq/Xq+AFz2G0ScxkGEZP9EnLRTxIS+12uxEOhzExMaEU0OFwIJ/PK+XmeFpBHLMQhpAS0zQNtVpNBU/z8/P4yU9+gqNHj6oFX6vVUCqV0G631aICoLwY7y2NA8dmfHwcwI4XunTpEj744AOsrq6iWq3eE+TcjwKqPu7HNUs3YrfbcfLkSZw+fRozMzMoFAq4ePEiLl68CIfDoawKsIPDaEGJ3yqVilJEcmhUhG63i0AgAIfDgePHj2N+fh7nzp3D6dOnsbi4qLixQUQOFicikUjg+eefx4kTJzA7OwuXy6VyvjIAodI1m031t8yE0CrRuno8Hni9Xni9XrhcLgBQWHFrawtfffUVVlZWlJvWNA0ej+eeSFNCA6vIWHoWXdcxOzuL3/72t7DZbLh27Zq6Lse41WqhXq+rBe9yuRQ0Yl6cc0qM7HK54PP5MDo6iomJCXz00Uf4wx/+gHQ63UPwm627pmmPj0fUNA1zc3N49913cfjwYayuruLChQvY3t5Wrq3T6cDlcqmBoHtqtVpwu909ka1UAq/XqyJNXddx+fJlOJ1OvPLKK0ilUjh9+rS6Dq/fT8w0BiHFyMgIDh8+jPn5eRw6dAjVahVra2tIp9PKhUo3KhVQco4cCy66UqkEp9MJn8+nAhgWdITDYdjtdrRaLWQyGRQKhYHHW7psRvmVSgWhUAjHjh3Dz372MywvL+PGjRsIBoNqgXBs2+22opk4D5OTk/D7/crdkj4iZ0qcWy6X4XA48K1vfQuXLl3CuXPnelx0v0h+L9m3a2aA8otf/ALz8/MoFou4fPky1tbWFBHNxsiUH5UHAGq1msJ7nFSn06km1eFwoFQqIRwOo9ls4vr16xgbG8Nbb72FCxcu4P3334fL5eobHUsxF7eGQiGMj49jdHQU4XAYLpdLBVTlchmVSkVNHBXRnO4z4ztZZWO323sqaaQiNhoNpFIprK6uIpvNKrqpHy9npkgkrna73Th06BDefvttNJtNbG5uwuPxoFQq9SzQXC4Hr9eLbreLdDrdw4WWSiWltKTdGAgyb97tdrG8vIyZmRm88cYbWFhYUHl9c6B0P1mgh2IRT548ie9+97sAgE8++QT//ve/1YqSClWv1xUekREvgT8/y/wzLaPT6US5XEan00GpVML169fx0ksv4de//jW++OILBaD3ErpRp9OJeDyOiYkJJBIJeL1eVKtVVcFTKBSUNZQBAK9hzgJJkdRGt9vtwa4+nw/dblfRRLFYDJFIBMFgELVarQe7ml20GXs5HA4YhqEw6FtvvYVgMIgrV64ofpOLpVQqqc/VahW6rmNiYkJF9ZKH5XUloS0ZgWKxiOXlZQSDQXznO9/B2bNnkclkLC3ioLKvalFOwiuvvILR0VGkUimUSiXEYjGEQiFVQ8fGESQzypOKIwEyJ71erytloAUiwXr16lWUy2XMzMzgzTffVAM/SHsZQMTjcUxPTytFrFQq2N7eVv1oNBr3KJ25cLUfFJCKSLK7Wq0qXAzsBEnxeByTk5MYGxtDIBBQeG+365ppHafTieeffx4vvPAC7ty5o4qHS6WSsu5kEyQJzzFutVqoVCoK95IhYHaIOJkeolQqoVgsolAo4MUXX8RTTz3V4/6t2rqX7LtseXJyEi+88AK63S62t7dx8+ZNFWkS5JfLZdRqNcsKFjYYuOvWAOyKwwzDUHVuHo8Hr732GqanpwfKy/J6DocDkUgEk5OTCh8ZhoFCodCjhLL8S7bV3F4KJ8ScomSkTc9AyEF+7+DBg4jFYgqicAGYxcxn2mw2xONxvPHGGyq12Ol0eoIRc6bITJq3220FlYjhGSB2u10FU2gQyCMWi0XE43HMzs7e17YAK9mXItpsNiQSCRw5cgR2ux25XA6hUKgnpSSDEEaPMjIjMGbgwJfL5YLL5VIZDIlHSSavra2h1Wphbm4Or7766p55TWnZ7HY7AoEAYrEYotEo3G63srZUQpm6kthJlmix7eQiGTzIMjCZWzYMA+VyWdEofr8fk5OTSCQSiEajqhB4kMwEXfXTTz+NcDiMmzdv9iQWZHaJ7TeXmrHCmvftdrtwuVwqevf5fIqYL5VKyGQy6Ha7Kh1brVYxOzurvJ8ZFz62YGVqakoB7+vXr8PtdqNarSqlIEYklpHVHzL6k+CeHbKqsmYWhMrEXPKJEycGWpEy8+JyuVQ+uFar9eSLJUHN9sr8rdVYAL0KK8/nb0wCEC/7fD7E43HE43H4/X61cK24RKuAQNM0RKNRGIYBv98Pp9OplNzhcKBcLvcUmLDam/wt28eFyDljezk/zMYUCgWk02lEo1HY7Xak02kEg0H4fD6V8XoQy7hvRSTXR1d37do1VKtVtNttVCoVuN1ueDweBdrN7oLuWvJk0uJwoCS102w2EQwGlevodrsIBoNoNBpqwPoJj2cbyJMRu0py3cods41yIe2lfLJv8sXysna7rVKb8n57WRa5WJkDv337tgrwGCQxQGRJWiQSUffltRlg1Wo1xSgQy3OOSEU5nc4eg+LxeBAMBpFMJu+pinosFrHb7aJUKimcce3aNdTrdUSjUWSzWWXia7UanE6nyqhIkM+UmNfr7YnQZN5a5m1ZaBAMBhGLxZTyJZPJgbcDyAVATpP0inTf7KN8N/dfWm/eX6bbzEpJV80FwP4yUGD75Hn8Tt6X77zvysqKwof8nSQ0FT0QCCicR8wudyDSOOTzeUVlSavIcjhCJdI+uq4jFAr1WPJBFZCyb0XkpqVYLIZvf/vb+O9//6saRpJWZlKYl5UDRq6Kf7MzXHmcJDlo+Xy+B+usra0NpIh0jwThpVIJpVJJFfLSUkgahX2VGQRpWfspqVloBZlxIU1SLBZRLBYVfWNWQl7Pyl0TqlDBfD6fomeAuzWOPFfX9Z7qJd6LFTV+v1+lVnVd7ymtk/eUi45BkpU8NouYTCZRLBYxPj6OSCSCcrmsVh7LvJhTbjabPRvszZGzpmk9+ITWk0rS7XZV2RUtIwsKlpaW9gxW5AQzUszn8ygWi8pi093L/LJVv83Wk585UdIdm60KsSmwk/LLZrNIp9MK21lRIbIt8jfDMJT3GRsb63nIgKSfeD45Q+mO5SLn3nEGJH6/X2WACLWYCfP7/Thw4AAWFxeRTqfvaWe/8bOSfRPaqVQK//nPfzA7O4vR0VFMTk4il8up0nq5YYiu0EqkslE4gXJfMJUpGo0iFArB6XTi888/x5dffjlQRbAkyxkFMnJmpMgJY/2jxKhyEfE7tk0WjkrcKHlUm80Gj8cDn8+Her2OSqWCzc1NJJNJFAoFlc0wu2UZjZonl4/0aLVaKBaLsNvtinIBdjyLuTKJ16PSMSgE7paw0ZC4XC614Bh8cudkuVzGpUuXFETjta3auZvsO1ipVqu4cuUKfvzjH8Pv9yORSPTsmmPCncCZFo0rkZZE1jXyPHJTnFA5uaFQSOHPM2fOYH19faCOUzEMw0Aul8P6+joCgQB0XUc0GlWuuVKpoFqtqrbuRl5TKeVCkdG/pLNIqTDblM1msbGxoRTRDEGsxlxOeKfTQSqVUrWeV69exfT0NNrtNlKpFJrNJubm5lS1EzM7ZpYCgMKSxMysSyQ2p7unNUyn07h69SqSyeQ9wd39KuO+Ce1ut4szZ87g1q1b8Pl8mJ2dRaPRQKVSUeaf1oVBicfjUSvOHGlKrlA+7IgFAzwnHo/D6XRiZWUFZ8+eVRZ1N5ERuWEYyGQyWF1dxerqKgqFglLwSCSCcDisNvBL7Gluq9V4yHcAPZuvGAC0221VsZ1MJrG9va2KTmWuerdxZ8CVy+XwxRdfqAKHVCql9vWw3IueSAZEDD7kmPM3WlFyum63Gz6fDx6PB36/H51OB9euXUMmk0E2m1WPe+H55vHYS/atiJqmYW1tDe+99x5SqRQSiQRee+01TE5OqidlsfqE+EISrQCUgsl9FHQPjNBocXw+H2KxGA4dOoRms4k//elPuH79+sARMwedFnFtbQ137txRm5xcLheCwSBCoRCCwaDqgxQqsxVpTdqJL/ZVPjMG6MWGmUwGxWJRZUP6BSvyXR7TarVw/vx5FItFVQfa6XRUPzKZjGIuJMxhu5looHGQcyGVNBAIYGJiAqFQCOl0GpVKBYuLi9jY2Linnfcr+8aIjLY++ugjJBIJ/PKXv8T8/DxsNhsuXLiAxcVFVQLFPCbP4WoE7lbgcCVyxfMYSXUcO3YMwWAQ77//Pv72t7+pgGUQiyhTiLQWyWQS6+vrGBsbg8/nUxNFN8XBlQGMrLwxY1MzTUOLTj41n8+j2WxiZWUFGxsbyOfzqlaTk7+X8L4ejwfNZhP5fB6ff/45fvrTnyIajSqrKF19rVZDoVBAIBBQFfK8n4RKfHH7BKktl8sFwzDUBrdbt27hzp07A7MGu8m+o2ZN01S5+l/+8hcAwK9+9Ss899xz8Hq9SKVSqFQqiEQiSKfTlsx+t9tVUaSssSOekSnA48ePY3p6GufPn8fvf/971Ot1ZV2ZudlNZDaHwVM2m8Xy8jJcLhfq9bpKU+q6jnA4rDAuOUc+JKlf8MUNSQxKmCYjpubTzRYXF3H79m1VVbSbAkpsyM+kXegxvvzySxw/fhyzs7PI5XIol8sqc5ROp5Wys1yOO/c4blRE5pyJY9vtNsbGxgAAN27cwPXr15FKpZRVlFkfczA0qEI+lM1TxAd0O6+++ip+85vf4OjRoygWizh37hwuXryIra0tFfKzfpApLa5eZl8AIBgMqvQTiz6npqawsLCAd955BwsLC/D5fD2TMaiLlsl9Zgbi8TgSiQQOHjyI0dFRjI6Oqj0nMpJmAQCf3iVxF7Bj1YLBoNoN6PV6oWkayuUy1tfXsbKyojZR5fN5VKvVXbcKcIKtpooLkHTX2NgYTp48ienpaZXp8Hq9SrE41tJK857kHFkEzGRCLBZDPp/HJ598gsXFRdV/yUCYIQPnkFU8e8m+LWKz2VSVvcwpf/jhh1hbW8MPf/hDnDp1Ct///vcxMTGBK1euYGtrC8FgUFkkrjrzM19YEOBwODA1NYVnn30WhmHg448/xnvvvYeVlRXlViTHOPAK/P9JB6AizGw2q8hcQgUqqnxEG/dN87PcswKgp2iDC63RaCCfz2NjYwNLS0u4efMmNjY21CYmqzK2fqS4pJRk7aPD4UA2m8W5c+fw8ssv4+WXX0YoFMLW1paycsBdi0gYxKBE3oMKDgBXr17F559/jo2NDVVBJN15P1LfKurvOx/7tYh0D/JxxKwb5BOhfv7zn+P111+H3+9XJVbr6+vKtCeTSZXLtNvtyh0mEgnMzMwgEAhga2sLf/zjH/HXv/4V5XJZKSBxG8vZB7WIFA4m8+PBYBDj4+NIJBKqIoYRo6wYMgcUZrdJZZSsQTqdVpbw9u3byOVyKliw2oAkr2dlEfmd3JEn8e0zzzyDl156ST3IgJXarE+s1WqqUEEWLjNbks1mkclksLa2hs3NTRVMyc320lpLaMG2DmoRH8pDmGRjJAbjYLXbbYyPj+Ob3/wmfvCDH+DIkSOYmJhQLkPSFnQbBPUbGxv45z//iQ8++ADLy8uqiseKs+L9eH+Z0dhtdUpcxOAiGAwiGAyqyJ1FFn6/H+FwWLEAMh9LTMRcbq1WQ7lcRjabRaFQQD6fV0++LZfLKsCSAYrEVTKNuJvVkefIRUI3zO0QU1NTSCQSKlBJpVKKDK/X6ygWi6r6iGlHFs7KvvVrg/mzzWZDrVZ7fIpoJUwLUWkYgWmahsOHD2Nubg4zMzMYGxuD1+tVqbVqtYpMJqP2Na+srKBQKCheks21AvYcAG7I2st1UPpNMM+z2+0IBoOIRCKIxWJqjzADEbmxn31ldTMnm8rHfLJV9sR8f3P7pLJZZTHM3KX8nsGXz+frecApd/YR57H6SF7LKujYzRvI9tXrdWSz2b5jr857VIooXTTxCHA3zUXFZM6YAyefbWOmE2SGxWpl8hiXy6W2inLDzyCFpryGeauozWaDz+dTAcjIyIh6XC+LF3guFZEWMJPJIJ1OKwvIOkFd1y2f3iCpHwYhLOPfLWgBej3TbovPytLu5TUGFbMiNhoNZDKZPc97pI+lk0rAvcCS8GWD+XAlBimyQod4ixQDf7N61BzTVcQ6vMZeD2GSwowDiVyZY67X64oDTKVSPUS2dJGM/rn3g4tO1lgCvQ/plNkaZpRIrZA2ktQI22SGRGZFoEHg3xLbysINqzEywx6rz/3mX47nIPLIHktH8NztdnueOiUbShwjOTGgt0qb1pCWSRbUmkUCaACYnp7G008/jXK5jH/9618Dt11aKumWDMNQ7szsVuV9zTgPuPuUMR5vdV+zNZSZJrNblspo9c4xIqFNSy/LwzieVHT2e68KIDNXaCVm6LCXPLLH0sniVnbUqgKZCkULJgcD6N1eyo6bCzBlZzVtZ7P/iRMn0Ol0sLCwgKWlpQfuh7QeclHIrIoUOQGyyEHuaaHSWU0klRG4uxneXC63mwLI48xu12azqcBDFn/wN84Z+7uXe5fW1TwPcuwGkUf6fETZUWn6qWyM6syb1yXwB3BPh6UC8JFx8XgcIyMj6jFw//jHP7C9va3OGyRttpvIxSAXhFWxrGwzFZLultwi3bTsD906ixVkqq1fZNrvM9sk/zaPhVXQxGuZzzFfa697mH/bSx7bP/wx4xtz6RTdBxtvteeZ5+u6rpRubGwMNtvOUwpSqRT+/ve/o1qtol6vq0knRntYbZckMtBr4c2KSMzHoEzu9JPWh5ZWYmrm5c3K0m+CzQplZT37KayVwu12v37Wzuy6B5XH+p+naCGtSGcZoAB3J5JbSuPxOMbHxzE5OYlAIIBqtYpkMolr164hn8+rymJmPVhgYH5C68MQLhzpYs0iyW9ZYkUcLMeB/WYdIAM7viSr0E8GCRwe5HyKGZsOeq3/OUa0EloH4pRIJKK2owJQSkeSmHip293ZpJVMJnH+/HmkUin1ODQZ9fHaMuvCqHuvYoi9RA6uLI1iNojww0po8cgOyAUnrSLfSR+x/3vxoA/ajwc5b5DzH4QGeuwWUT6YXP67LKB33y+T72T65V5mKoDEOMRXdMWSkhikaHbQ9kvsJx+hx3aZJ0G6WeacmSKTQYSVa7RiGh637HZfKzf/oFzkY//vpLKhrBymlaCrMx9PCkhiHioh0PtEVabppFV5GEQtRfJztIyyQNbcfgYf5PPkrkRJ0lvRQTIwMv9ubk+/dg6qwP3GaDfsuNt9+fegnmjgzMpQhvIoZfgf7IfyRMhQEYfyRMhQEYfyRMhQEYfyRMhQEYfyRMhQEYfyRMhQEYfyRMhQEYfyRMhQEYfyRMj/AecA514xcgr0AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 20/200:,loss: 0.144559,\n",
      "Validation loss: 0.004613,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004093,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004793,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004594,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004505,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004176,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004405,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004649,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation loss: 0.004160,\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Optimizers\n",
    "optimizer = torch.optim.Adam(unet.parameters(), lr=5e-5)\n",
    "\n",
    "scaler_diffusion = GradScaler(\"cuda\")\n",
    "\n",
    "max_epochs = 200\n",
    "val_interval = 20\n",
    "print_interval = 20\n",
    "epoch_loss_list = []\n",
    "val_epoch_loss_list = []\n",
    "\n",
    "for epoch in range(max_epochs):\n",
    "    unet.train()\n",
    "    autoencoderkl.eval()\n",
    "    epoch_loss = 0\n",
    "    for batch in train_loader:\n",
    "        images = batch[\"image\"].to(device)\n",
    "        low_res_image = batch[\"low_res_image\"].to(device)\n",
    "        optimizer.zero_grad(set_to_none=True)\n",
    "\n",
    "        with autocast(\"cuda\", enabled=True):\n",
    "            with torch.no_grad():\n",
    "                latent = autoencoderkl.encode_stage_2_inputs(images) * scale_factor\n",
    "\n",
    "            # Noise augmentation\n",
    "            noise = torch.randn_like(latent).to(device)\n",
    "            low_res_noise = torch.randn_like(low_res_image).to(device)\n",
    "            timesteps = torch.randint(0, scheduler.num_train_timesteps, (latent.shape[0],), device=latent.device).long()\n",
    "            low_res_timesteps = torch.randint(\n",
    "                0, max_noise_level, (low_res_image.shape[0],), device=low_res_image.device\n",
    "            ).long()\n",
    "\n",
    "            noisy_latent = scheduler.add_noise(original_samples=latent, noise=noise, timesteps=timesteps)\n",
    "            noisy_low_res_image = scheduler.add_noise(\n",
    "                original_samples=low_res_image, noise=low_res_noise, timesteps=low_res_timesteps\n",
    "            )\n",
    "            # Here we concatenate the HR latent and thje low resolution image.\n",
    "            latent_model_input = torch.cat([noisy_latent, noisy_low_res_image], dim=1)\n",
    "\n",
    "            noise_pred = unet(x=latent_model_input, timesteps=timesteps, class_labels=low_res_timesteps)\n",
    "            loss = F.mse_loss(noise_pred.float(), noise.float())\n",
    "\n",
    "        scaler_diffusion.scale(loss).backward()\n",
    "        scaler_diffusion.step(optimizer)\n",
    "        scaler_diffusion.update()\n",
    "\n",
    "        epoch_loss += loss.item()\n",
    "\n",
    "    msgs = [f\"epoch {epoch:d}/{max_epochs:d}:\", f\"loss: {epoch_loss / len(train_loader) :4f},\"]\n",
    "\n",
    "    if epoch % print_interval == 0:\n",
    "        print(\",\".join(msgs))\n",
    "\n",
    "    epoch_loss_list.append(epoch_loss / len(train_loader))\n",
    "\n",
    "    if epoch % val_interval == 0:\n",
    "        unet.eval()\n",
    "        val_loss = 0\n",
    "        for batch in val_loader:\n",
    "            images = batch[\"image\"].to(device)\n",
    "            low_res_image = batch[\"low_res_image\"].to(device)\n",
    "\n",
    "            with torch.no_grad():\n",
    "                with autocast(\"cuda\", enabled=True):\n",
    "                    latent = autoencoderkl.encode_stage_2_inputs(images) * scale_factor\n",
    "                    # Noise augmentation\n",
    "                    noise = torch.randn_like(latent).to(device)\n",
    "                    low_res_noise = torch.randn_like(low_res_image).to(device)\n",
    "                    timesteps = torch.randint(\n",
    "                        0, scheduler.num_train_timesteps, (latent.shape[0],), device=latent.device\n",
    "                    ).long()\n",
    "                    low_res_timesteps = torch.randint(\n",
    "                        0, max_noise_level, (low_res_image.shape[0],), device=low_res_image.device\n",
    "                    ).long()\n",
    "\n",
    "                    noisy_latent = scheduler.add_noise(original_samples=latent, noise=noise, timesteps=timesteps)\n",
    "                    noisy_low_res_image = scheduler.add_noise(\n",
    "                        original_samples=low_res_image, noise=low_res_noise, timesteps=low_res_timesteps\n",
    "                    )\n",
    "\n",
    "                    latent_model_input = torch.cat([noisy_latent, noisy_low_res_image], dim=1)\n",
    "                    noise_pred = unet(x=latent_model_input, timesteps=timesteps, class_labels=low_res_timesteps)\n",
    "                    loss = F.mse_loss(noise_pred.float(), noise.float())\n",
    "\n",
    "            val_loss += loss.item()\n",
    "\n",
    "        val_loss /= len(val_loader)\n",
    "        val_epoch_loss_list.append(val_loss)\n",
    "        msgs = f\"Validation loss: {val_loss / len(val_loader) :4f},\"\n",
    "        print(msgs)\n",
    "\n",
    "        # Sampling image during training\n",
    "        sampling_image = low_res_image[0].unsqueeze(0)\n",
    "        latents = torch.randn((1, 3, 16, 16)).to(device)\n",
    "        low_res_noise = torch.randn((1, 1, 16, 16)).to(device)\n",
    "        noise_level = 20\n",
    "        noise_level = torch.Tensor((noise_level,)).long().to(device)\n",
    "        noisy_low_res_image = scheduler.add_noise(\n",
    "            original_samples=sampling_image,\n",
    "            noise=low_res_noise,\n",
    "            timesteps=torch.Tensor((noise_level,)).long().to(device),\n",
    "        )\n",
    "\n",
    "        scheduler.set_timesteps(num_inference_steps=1000)\n",
    "        for t in scheduler.timesteps:\n",
    "            with torch.no_grad():\n",
    "                with autocast(\"cuda\", enabled=True):\n",
    "                    latent_model_input = torch.cat([latents, noisy_low_res_image], dim=1)\n",
    "                    noise_pred = unet(\n",
    "                        x=latent_model_input, timesteps=torch.Tensor((t,)).to(device), class_labels=noise_level\n",
    "                    )\n",
    "                latents, _ = scheduler.step(noise_pred, t, latents)\n",
    "\n",
    "        with torch.no_grad():\n",
    "            decoded = autoencoderkl.decode_stage_2_outputs(latents / scale_factor)\n",
    "\n",
    "        low_res_bicubic = nn.functional.interpolate(sampling_image, (64, 64), mode=\"bicubic\")\n",
    "        plt.figure(figsize=(2, 2))\n",
    "        plt.style.use(\"default\")\n",
    "        plt.imshow(\n",
    "            torch.cat([images[0, 0].cpu(), low_res_bicubic[0, 0].cpu(), decoded[0, 0].cpu()], dim=1),\n",
    "            vmin=0,\n",
    "            vmax=1,\n",
    "            cmap=\"gray\",\n",
    "        )\n",
    "        plt.tight_layout()\n",
    "        plt.axis(\"off\")\n",
    "        plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30f24595",
   "metadata": {},
   "source": [
    "### Plotting sampling example"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a2813d4-9087-459e-8913-bce174ac31cd",
   "metadata": {},
   "source": [
    "As mentioned above, at inference time, we only need to pass noise of the same shape of the latent concatenated to the low-resolution image, to get the latent representation of the corresponding high-resolution image."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "155be091",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Sampling image during training\n",
    "unet.eval()\n",
    "num_samples = 3\n",
    "validation_batch = first(val_loader)\n",
    "\n",
    "images = validation_batch[\"image\"].to(device)\n",
    "sampling_image = validation_batch[\"low_res_image\"].to(device)[:num_samples]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "aaf61020",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|█████████████████████████████████████████████████████████████████████| 1000/1000 [00:32<00:00, 31.22it/s]\n"
     ]
    }
   ],
   "source": [
    "latents = torch.randn((num_samples, 3, 16, 16)).to(device)\n",
    "low_res_noise = torch.randn((num_samples, 1, 16, 16)).to(device)\n",
    "noise_level = 10\n",
    "noise_level = torch.Tensor((noise_level,)).long().to(device)\n",
    "noisy_low_res_image = scheduler.add_noise(\n",
    "    original_samples=sampling_image, noise=low_res_noise, timesteps=torch.Tensor((noise_level,)).long().to(device)\n",
    ")\n",
    "scheduler.set_timesteps(num_inference_steps=1000)\n",
    "for t in tqdm(scheduler.timesteps, ncols=110):\n",
    "    with torch.no_grad():\n",
    "        with autocast(\"cuda\", enabled=True):\n",
    "            latent_model_input = torch.cat([latents, noisy_low_res_image], dim=1)\n",
    "            noise_pred = unet(x=latent_model_input, timesteps=torch.Tensor((t,)).to(device), class_labels=noise_level)\n",
    "\n",
    "        # 2. compute previous image: x_t -> x_t-1\n",
    "        latents, _ = scheduler.step(noise_pred, t, latents)\n",
    "\n",
    "with torch.no_grad():\n",
    "    decoded = autoencoderkl.decode_stage_2_outputs(latents / scale_factor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "32e16e69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw0AAAMVCAYAAAA1ZBgWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD5Q0lEQVR4nOy9d7xeVZX/v0IL6b33Rgmd0HuVIjCoiGBFsKIiM5bR7+hvYGTs49hGBAsqIg7WsSECKkXK0AMhgQSSkEIaaSSh8/z+8JUza3+ee9e+O89zb54k7/frldfrrLufc87u55zsz1q7W61WqxkAAAAAAEA7bLe5MwAAAAAAAK0NHw0AAAAAABDCRwMAAAAAAITw0QAAAAAAACF8NAAAAAAAQAgfDQAAAAAAEMJHAwAAAAAAhPDRAAAAAAAAIXw0AAAAAABACB8NXcQll1xi3bp126Rzf/CDH1i3bt1s3rx5zc2UY968edatWzf7wQ9+EP7ur3/9q3Xr1s3++te/dlpeAKB5dHRsl9LInAYAWy8dfU/oincbaC58NGSYMWOGvfWtb7VRo0ZZ9+7dbeTIkfaWt7zFZsyYsbmzBrBNs/GBc++9927urGy1bNiwwS655JKW+0+Cbt262Qc/+MHNnQ3Yyums5/9nP/tZ+/Wvf92cTGa444477JJLLrHVq1dv1nzA1gEfDQG//OUvbf/997ebb77Z3vnOd9q3vvUtu+CCC+wvf/mL7b///varX/2qw9f61Kc+Zc8999wm5eNtb3ubPffcczZu3LhNOr+ZHHXUUfbcc8/ZUUcdtbmzAgCdzIYNG+zSSy9t86OhkTkNoNVp5vNf6eqPhksvvbQlPxpa6d0GOsYOmzsDrcoTTzxhb3vb22zixIl266232pAhQ6q0D3/4w3bkkUfa2972Nps+fbpNnDix3eusX7/eevXqZTvssIPtsMOmVff2229v22+//Sad22y2224723nnnTd3NgC2KGq1mj3//PPWo0ePzZ2VptHInAbQyjTr+Q8xrfRuAx2DlYZ2+NKXvmQbNmywK6+8MpkwzMwGDx5sV1xxha1fv96++MUvVn/fqPF99NFH7c1vfrMNGDDAjjjiiCTN89xzz9lFF11kgwcPtj59+tgZZ5xhixYtsm7dutkll1xS/a4t3d/48ePttNNOs9tvv90OOugg23nnnW3ixIn2ox/9KLnHypUr7aMf/ajttdde1rt3b+vbt6+dcsop9tBDD21SvbSlVTzmmGNszz33tOnTp9vRRx9tPXv2tMmTJ9vPf/5zMzO75ZZb7OCDD7YePXrYrrvuajfddFNyzfnz59uFF15ou+66q/Xo0cMGDRpkb3zjG9vUOW68R48ePWz06NF22WWX2VVXXdWmLvL666+3I4880nr16mV9+vSx1772tcjKtkEeeOABO+WUU6xv377Wu3dvO/744+2uu+6q0levXm3bb7+9ff3rX6/+tmLFCttuu+1s0KBBVqvVqr+///3vt+HDh2fvuXF83nDDDXbAAQdYjx497Iorrqjud/HFF9uYMWOse/fuNnnyZPvCF75gr776anKNn/70pzZt2jTr06eP9e3b1/baay/72te+lvzmySeftDe+8Y02cOBA69mzpx1yyCH2+9//Ppu/Y445xo455pi6v5933nk2fvx4M/u7L8TGue/SSy+1bt26JXNTW3Payy+/bJ/5zGds0qRJ1r17dxs/frz9v//3/+yFF15os35y81dH2TgvXXfddXbppZfaqFGjrE+fPnbWWWfZmjVr7IUXXrCLL77Yhg4dar1797Z3vvOddXm66qqr7LjjjrOhQ4da9+7dberUqXb55ZfX3evVV1+1Sy65xEaOHGk9e/a0Y4891h599FEbP368nXfeeclvO9rW0FpsyvPfjx2PjpNu3brZ+vXr7Yc//GE1pjb2m42/nTVrlp199tnWt29fGzRokH34wx+2559/vrpG5KekY/RjH/uYmZlNmDChut/G89vLh5nZokWL7Pzzz7dhw4ZZ9+7dbY899rDvf//7dfdbuHChnXnmmdarVy8bOnSo/eM//mPd2GqP6N3mr3/9azV37rXXXtU7xy9/+Uvba6+9bOedd7Zp06bZAw88kFxz+vTpdt5559nEiRNt5513tuHDh9v5559vzzzzTN39N95j5513tkmTJtkVV1zRrq/Wj3/8Y5s2bZr16NHDBg4caOecc44tWLCgQ+XcmuC/idrht7/9rY0fP96OPPLINtOPOuooGz9+fJsP6De+8Y02ZcoU++xnP5u8cCjnnXeeXXfddfa2t73NDjnkELvlllvsta99bYfzOGfOHDvrrLPsggsusHe84x32/e9/38477zybNm2a7bHHHmb295eKX//61/bGN77RJkyYYEuXLrUrrrjCjj76aHv00Udt5MiRHb5fxKpVq+y0006zc845x974xjfa5Zdfbuecc45dc801dvHFF9v73vc+e/Ob32xf+tKX7KyzzrIFCxZYnz59zMzsnnvusTvuuMPOOeccGz16tM2bN88uv/xyO+aYY+zRRx+1nj17mtnfJ7Fjjz3WunXrZp/85CetV69e9t3vfte6d+9el5+rr77a3vGOd9hJJ51kX/jCF2zDhg12+eWX2xFHHGEPPPBAm5M7bH3MmDHDjjzySOvbt699/OMftx133NGuuOIKO+aYY6qP2f79+9uee+5pt956q1100UVmZnb77bdbt27dbOXKlfboo49W4+m2225rd05QHnvsMTv33HPtve99r7373e+2XXfd1TZs2GBHH320LVq0yN773vfa2LFj7Y477rBPfvKT9vTTT9tXv/pVMzO78cYb7dxzz7Xjjz/evvCFL5iZ2cyZM+1vf/ubffjDHzYzs6VLl9phhx1mGzZssIsuusgGDRpkP/zhD+2MM86wn//85/a6172uobobMmSIXX755fb+97/fXve619nrX/96MzPbe++92z3nXe96l/3whz+0s846yz7ykY/Y3XffbZ/73Ods5syZdXKOjsxfpXzuc5+zHj162Cc+8QmbM2eOfeMb37Add9zRtttuO1u1apVdcskldtddd9kPfvADmzBhgv1//9//V517+eWX2x577GFnnHGG7bDDDvbb3/7WLrzwQnv11VftAx/4QPW7T37yk/bFL37RTj/9dDvppJPsoYcespNOOil5qTOzDrc1tB6NPP9zXH311faud73LDjroIHvPe95jZmaTJk1KfnP22Wfb+PHj7XOf+5zddddd9vWvf91WrVpV/FH9+te/3h5//HG79tpr7T//8z9t8ODBZvb3sR3lY+nSpXbIIYdUvkNDhgyx66+/3i644AJbu3atXXzxxWb29//4PP744+2pp56yiy66yEaOHGlXX321/fnPfy6uF8+cOXPszW9+s733ve+1t771rfblL3/ZTj/9dPv2t79t/+///T+78MILzezv4/3ss8+2xx57zLbb7u//B37jjTfak08+ae985ztt+PDhNmPGDLvyyittxowZdtddd1UfBA888ICdfPLJNmLECLv00kvtlVdesX/7t3+r+0g0M/v3f/93+/SnP21nn322vetd77Lly5fbN77xDTvqqKPsgQcesP79+zdU3i2KGtSxevXqmpnV/uEf/iH83RlnnFEzs9ratWtrtVqt9q//+q81M6ude+65db/dmLaR++67r2ZmtYsvvjj53XnnnVczs9q//uu/Vn+76qqramZWmzt3bvW3cePG1cysduutt1Z/W7ZsWa179+61j3zkI9Xfnn/++dorr7yS3GPu3Lm17t271/7t3/4t+ZuZ1a666qqwzH/5y19qZlb7y1/+Uv3t6KOPrplZ7Sc/+Un1t1mzZtXMrLbddtvV7rrrrurvN9xwQ919NmzYUHefO++8s2ZmtR/96EfV3z70oQ/VunXrVnvggQeqvz3zzDO1gQMHJvXz7LPP1vr3719797vfnVxzyZIltX79+tX9HbZMNo6Le+65p93fnHnmmbWddtqp9sQTT1R/W7x4ca1Pnz61o446qvrbBz7wgdqwYcMq+5/+6Z9qRx11VG3o0KG1yy+/vFar/b2vdevWrfa1r30tm7eN4/OPf/xj8vfPfOYztV69etUef/zx5O+f+MQnattvv33tqaeeqtVqtdqHP/zhWt++fWsvv/xyu/e4+OKLa2ZWu+2226q/Pfvss7UJEybUxo8fX437tsb20UcfXTv66KPrrvmOd7yjNm7cuMpevnx53Xy0EZ3THnzwwZqZ1d71rnclv/voRz9aM7Pan//85+pvHZ2/2sPMah/4wAcqe+O8tOeee9ZefPHF6u/nnnturVu3brVTTjklOf/QQw9NylmrtT0PnXTSSbWJEydW9pIlS2o77LBD7cwzz0x+d8kll9TMrPaOd7yj+ltH2xpai019/uvY2YiOk1qtVuvVq1fSV/S3Z5xxRvL3Cy+8sGZmtYceeqhWq8XPax2vX/rSl+reH3L5uOCCC2ojRoyorVixIvn7OeecU+vXr181Vr761a/WzKx23XXXVb9Zv359bfLkyXXvCW0Rvdvccccd1d82vjf06NGjNn/+/OrvV1xxRd192hrH1157bd18c/rpp9d69uxZW7RoUfW32bNn13bYYYekvebNm1fbfvvta//+7/+eXPPhhx+u7bDDDnV/39pBntQGzz77rJlZ9T/h7bExfe3atcnf3/e+92Xv8cc//tHMrPpi3siHPvShDudz6tSpyf+EDBkyxHbddVd78sknq7917969+gJ/5ZVX7JlnnrHevXvbrrvuavfff3+H75Wjd+/eds4551T2rrvuav3797fdd9/dDj744OrvG499Hr3O+6WXXrJnnnnGJk+ebP3790/y+Mc//tEOPfRQ23fffau/DRw40N7ylrckebnxxhtt9erVdu6559qKFSuqf9tvv70dfPDB9pe//KVp5YbW5ZVXXrE//elPduaZZya64xEjRtib3/xmu/3226uxe+SRR9rSpUvtscceM7O/rygcddRRduSRR9ptt91mZn9ffajVah1eaZgwYYKddNJJyd9+9rOf2ZFHHmkDBgxI+uYJJ5xgr7zyit16661mZta/f39bv3693Xjjje1e/w9/+IMddNBBlQTS7O/j8D3veY/NmzfPHn300Q7ls1n84Q9/MDOzf/qnf0r+/pGPfMTMrO5/ZTsyf5Xy9re/3XbcccfKPvjgg61Wq9n555+f/O7ggw+2BQsW2Msvv1z9zc9Da9assRUrVtjRRx9tTz75pK1Zs8bMzG6++WZ7+eWXOzRvd7StobVo9PnfDPzKltn/9a+NY6wzqdVq9otf/MJOP/10q9VqSd896aSTbM2aNdVz+Q9/+IONGDHCzjrrrOr8nj17VisXm8rUqVPt0EMPreyN7w3HHXecjR07tu7v7b1PPP/887ZixQo75JBDzMyqfL/yyit200032ZlnnpmoLSZPnmynnHJKkpdf/vKX9uqrr9rZZ5+d1MXw4cNtypQp29z7BPKkNtg4GWycPNqjvcllwoQJ2XvMnz/ftttuu7rfTp48ucP59INnIwMGDLBVq1ZV9quvvmpf+9rX7Fvf+pbNnTvXXnnllSpt0KBBHb5XjtGjR9fpAPv162djxoyp+5uZJXl87rnn7HOf+5xdddVVtmjRokTStfFhbfb3OvMTyUa0zmbPnm1mf59g2qJv374dKRJs4Sxfvtw2bNhgu+66a13a7rvvbq+++qotWLDA9thjj+rl9bbbbrPRo0fbAw88YJdddpkNGTLEvvzlL1dpffv2tX322cfMzNatW2fr1q2rrrn99tsnS9ttzQOzZ8+26dOnt7kEbma2bNkyM/v7fyZcd911dsopp9ioUaPsNa95jZ199tl28sknV7+dP39+8kHuy7Yxfc8994wrqYlsnNN0PA4fPtz69+9v8+fPT/7ekfmrFL3mxvmmrXno1VdftTVr1lTz4N/+9jf713/9V7vzzjttw4YNye/XrFlj/fr1q8qgZRw4cKANGDAg+VtH2xpai0af/81gypQpiT1p0iTbbrvtumQ/g+XLl9vq1avtyiuvtCuvvLLN32zsu/Pnz7fJkyfXPfvbmnNLKBnHZun7xMqVK+3SSy+1n/70p3VjbOP7xLJly+y5555r832rrfeJWq1W1yYb8f9JsS3AR0Mb9OvXz0aMGGHTp08Pfzd9+nQbNWpU3UtoV0VIaS/qgH/p/uxnP2uf/vSn7fzzz7fPfOYzNnDgQNtuu+3s4osvbqozXnt56UgeP/ShD9lVV11lF198sR166KHWr18/69atm51zzjmblMeN51x99dVtOq0S8QWUkSNH2oQJE+zWW2+18ePHW61Ws0MPPdSGDBliH/7wh23+/Pl222232WGHHVat3H35y1+2Sy+9tLrGuHHjkod6W/PAq6++aieeeKJ9/OMfbzMfu+yyi5mZDR061B588EG74YYb7Prrr7frr7/errrqKnv7299uP/zhDxsub7du3dr0t/L/qdDItTtCR+aGUjZ1HnriiSfs+OOPt912282+8pWv2JgxY2ynnXayP/zhD/af//mfmzwPdaStobXY1Od/e/2+M8ZUZ95rY19/61vfau94xzva/E3k19QMGnmfOPvss+2OO+6wj33sY7bvvvta79697dVXX7WTTz55k8dxt27d7Prrr2/z/r179y6+5pYMb0/tcNppp9l3vvMdu/3225Pl/43cdtttNm/ePHvve9+7SdcfN26cvfrqqzZ37tzkC3bOnDmbnOe2+PnPf27HHnusfe9730v+vnr16sopanPz85//3N7xjnfYf/zHf1R/e/755+viSo8bN67N+tG/bXTmGjp0qJ1wwgnNzzBsEQwZMsR69uxZSY48s2bNsu222y75n6sjjzzSbr31VpswYYLtu+++1qdPH9tnn32sX79+9sc//tHuv//+5CPh7W9/ezI3dOQ/CyZNmmTr1q3rUL/caaed7PTTT7fTTz/dXn31VbvwwgvtiiuusE9/+tM2efJkGzduXLtlM7Mw9vmAAQPalAHpakDJjs8b57TZs2dXqx1mf3eqXL16dUvHYv/tb39rL7zwgv3mN79J/pdTpQcbyzBnzpxkJemZZ56pWyEpaWtoLTbl+T9gwIA290LQMWWWH1ezZ89O+tecOXPs1VdfrQJ4bFzV0vuV3quttCFDhlifPn3slVdeyfbdcePG2SOPPGK1Wi25VlvzUlewatUqu/nmm+3SSy9NghxsVB9sZOjQobbzzjt3+H2iVqvZhAkT+NA3Qq62y8c+9jHr0aOHvfe9760L1bVy5Up73/veZz179qzCmZWyUev8rW99K/n7N77xjU3LcDtsv/32df9z97Of/cwWLVrU1Ps0Qlt5/MY3vlH3vyYnnXSS3Xnnnfbggw9Wf1u5cqVdc801db/r27evffazn7WXXnqp7n7Lly9vXuahZdl+++3tNa95jf3P//xPsgKwdOlS+8lPfmJHHHFEskp45JFH2rx58+y///u/K7nSdtttZ4cddph95StfsZdeeinR4E+cONFOOOGE6t/hhx+ezdPZZ59td955p91www11aatXr6409jrnbLfddtX/7m0MZ3jqqafa//7v/9qdd95Z/W79+vV25ZVX2vjx423q1Knt5mPSpEk2a9asZCw89NBD9re//S353cbIZW29DCmnnnqqmVldVKCvfOUrZmZFkeG6mo3/g6jSyKuuuir53fHHH2877LBDXSjWb37zm3XX7GhbQ+uxKc//SZMm2Zo1a5IViqeffrrNTeB69eoVjqn/+q//SuyN7wUb9fZ9+/a1wYMH1/nF6PvExnuZtT2G28rH9ttvb294wxvsF7/4hT3yyCN15/g549RTT7XFixdX4dXNrApVuzloaxyb1c9J22+/vZ1wwgn261//2hYvXlz9fc6cOXb99dcnv339619v22+/vV166aV1163Vam2Gct2aYaWhHaZMmWI//OEP7S1veYvttddedsEFF9iECRNs3rx59r3vfc9WrFhh1157bV2otI4ybdo0e8Mb3mBf/epX7ZlnnqlCrj7++ONmVvY/fBGnnXaa/du//Zu9853vtMMOO8wefvhhu+aaa1pqQ5rTTjvNrr76auvXr59NnTrV7rzzTrvpppvqfC4+/vGP249//GM78cQT7UMf+lAVcnXs2LG2cuXKqs769u1rl19+ub3tbW+z/fff38455xwbMmSIPfXUU/b73//eDj/88DYf8rBl8v3vf78KLOD58Ic/bJdddpndeOONdsQRR9iFF15oO+ywg11xxRX2wgsvJDHWzaz6IHjsscfss5/9bPX3o446yq6//nrr3r27HXjggQ3l9WMf+5j95je/sdNOO60KL7p+/Xp7+OGH7ec//7nNmzfPBg8ebO9617ts5cqVdtxxx9no0aNt/vz59o1vfMP23Xff6n/xP/GJT9i1115rp5xyil100UU2cOBA++EPf2hz5861X/ziF5WMqi3OP/98+8pXvmInnXSSXXDBBbZs2TL79re/bXvssUfi2NmjRw+bOnWq/fd//7ftsssuNnDgQNtzzz3b9JXYZ5997B3veIddeeWVtnr1ajv66KPtf//3f+2HP/yhnXnmmXbsscc2VHedyWte85pqZee9732vrVu3zr7zne/Y0KFD7emnn65+N2zYMPvwhz9s//Ef/2FnnHGGnXzyyfbQQw/Z9ddfb4MHD07m7Y62NbQem/L8P+ecc+yf//mf7XWve51ddNFFVZjvXXbZpS7oyLRp0+ymm26yr3zlK5U00vsnzZ07t+pfd955p/34xz+2N7/5zZU/ldnfwxt//vOft3e96112wAEH2K233lq9P+i9zMz+5V/+xc455xzbcccd7fTTT7devXq1m4/Pf/7z9pe//MUOPvhge/e7321Tp061lStX2v3332833XSTrVy50szM3v3ud9s3v/lNe/vb32733XefjRgxwq6++urqPxu6mr59+9pRRx1lX/ziF+2ll16yUaNG2Z/+9CebO3du3W8vueQS+9Of/mSHH364vf/977dXXnnFvvnNb9qee+6Z/MfkpEmT7LLLLrNPfvKTNm/ePDvzzDOtT58+NnfuXPvVr35l73nPe+yjH/1oF5ZyM9OlsZq2QKZPn14799xzayNGjKjtuOOOteHDh9fOPffc2sMPP1z3243h0pYvX95ummf9+vW1D3zgA7WBAwfWevfuXTvzzDNrjz32WM3Map///Oer37UXluy1r31t3X00lOLzzz9f+8hHPlIbMWJErUePHrXDDz+8duedd9b9rtGQq3vssUfdb9vLo0m4xFWrVtXe+c531gYPHlzr3bt37aSTTqrNmjWrNm7cuLpwcA888EDtyCOPrHXv3r02evTo2uc+97na17/+9ZqZ1ZYsWVKX15NOOqnWr1+/2s4771ybNGlS7bzzzqvde++9YRlhy2DjuGjv34IFC2q1Wq12//3310466aRa7969az179qwde+yxSTg/z9ChQ2tmVlu6dGn1t9tvv71mZrUjjzyyw3lrr+/Xan8Pi/rJT36yNnny5NpOO+1UGzx4cO2www6rffnLX67Chf785z+vveY1r6kNHTq0ttNOO9XGjh1be+9731t7+umnk2s98cQTtbPOOqvWv3//2s4771w76KCDar/73e+S37Q3tn/84x/XJk6cWNtpp51q++67b+2GG25oM2zkHXfcUZs2bVptp512SsI5tjWnvfTSS7VLL720NmHChNqOO+5YGzNmTO2Tn/xk7fnnn+9Q/bQXClbROWTjvPSzn/0s+V17YXnbmqt/85vf1Pbee+/azjvvXBs/fnztC1/4Qu373/9+3dz78ssv1z796U/Xhg8fXuvRo0ftuOOOq82cObM2aNCg2vve977kPh1pa2hdSp7/tVqt9qc//am255571nbaaafarrvuWvvxj3/c5jiZNWtW7aijjqr16NEjCdW78bePPvpo7ayzzqr16dOnNmDAgNoHP/jB2nPPPZdcY8OGDbULLrig1q9fv1qfPn1qZ599dm3ZsmVthkj+zGc+Uxs1alRtu+22S/pze/mo1Wq1pUuX1j7wgQ/UxowZU5X9+OOPr1155ZXJtefPn18744wzaj179qwNHjy49uEPf7j2xz/+saGQqx15b6jV/m9u+9KXvlT9beHChbXXve51tf79+9f69etXe+Mb31hbvHhxm/Vy88031/bbb7/aTjvtVJs0aVLtu9/9bu0jH/lIbeedd667/y9+8YvaEUccUevVq1etV69etd122632gQ98oPbYY4+FZdza6FarNeB1Bk3nwQcftP32289+/OMf14UShba5+OKL7YorrrB169axJT0AdDmrV6+2AQMG2GWXXWb/8i//srmzA1sol1xyiV166aW2fPlyVqE2E2eeeabNmDGjzg8C/g4+DZuR5557ru5vX/3qV2277bazo446ajPkqPXROnvmmWfs6quvtiOOOIIPBgDodNqbt83MjjnmmK7NDABsMjqWZ8+ebX/4wx8YxwH4NGxGvvjFL9p9991nxx57rO2www5VaMX3vOc9dfGI4e8ceuihdswxx9juu+9uS5cute9973u2du1a+/SnP725swYA2wD//d//bT/4wQ/s1FNPtd69e9vtt99u1157rb3mNa/pkDM8ALQGEydOtPPOO88mTpxo8+fPt8svv9x22mmndsMkAx8Nm5XDDjvMbrzxRvvMZz5j69ats7Fjx9oll1zC8nbAqaeeaj//+c/tyiuvtG7dutn+++9v3/ve91iZAYAuYe+997YddtjBvvjF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3qtisWcYERERERFZdfxpEBERERGRFH8aREREREQkRZ+GBYNatAzq5UimVaMGjjb3RMiem+lUK40j0w855JDJMbWE1b0yfeGIdjbz0Wht2k8jnl/5YRx55JGd/eijj06ON27cuGTe/z9xX4bWWrvyyisnxx/96Ee7tFtvvTW9l6wso7Hd3+i5o2T9fCX3aVguD0vZ2fkj51bnj2iKK98B3ivzc2L8eaZHe9RnoXonHMzMMqZmuXb03iOM+FKM9O0D6f8R7WpcZHsP8L4cJ7x39EVgv6ffZeYbVOU5Y3S8ZXNZNf/GfFZ+GMcee2xnn3HGGZNj+ops3bo1vRdxpUFERERERFL8aRARERERkRR/GkREREREJEWfBllV6DsRdXzcl4DaQ2oeo77wtdde69Los3H44Yd3NjWQEfol/Pe//132ufR3iD4arbW2Y8eOzn73u989Od61a1eXtmnTps6+/vrrO/ull16aHF977bXLprXW2ve///0mq8dK6Z5nee4seVotZvGHqPwBsnvPstcC5xbOEZzHYvrovguZRvxAkWnxqzxl6QdyDI34C8ziWzEyPqvnzGuPknnWVaX5j/2b9+F7l2PwHe94x+SY73f6P1Z+mBGWn98hMR+8L8frLPs0ZHVHn4Wzzjqrs+O+DK21tn379snxE088sd/PWQpXGkREREREJMWfBhERERERSVGeJKtKFoKNVCEi43ImwxhSjrR37979zhOXRXnvLOQqpUwf/OAHO/uEE06YHH/rW9/q0uLya2ut/fjHP+7sP/3pT5NjSiAOPfTQJm8OFiU85Lw4kLKZLMRhJf2J4zwL2bjUvaLNayup00gbsS4p01gE5iUrmkU2U4UvzSRHo/mfV3lHpXjzykN1rwMVJpYyPn4bxHdrJRnLxgXf58wj8xHHb/VtkEmb+By+w9evX9/Zp59++uSY8qOdO3d29p133tnZ//rXv5Z9ThXKnrjSICIiIiIiKf40iIiIiIhIij8NIiIiIiKSok+DrCrU00XNH/WBhNuhR/3gkUce2aWdcsopnT2ib67Cqh133HGT41NPPbVL27BhQ2fTT+G+++6bHP/gBz/o0h5//PHOpk7zXe961+SYdbFnz54mByerFSpznhyoMlQa6iytCps64tNA4r04f1DnTL11pnsmvPdo+MRFZ15+CWTkXrP05VnCpC7KPFDV6yw+OFla1Zej/+BJJ53UpW3evLmzGdo9UoVJrcK3RvjNQjvmg74SzMerr77a2Q8//PDk+Mknn+zSos/CUnmMc8qs/cqVBhERERERSfGnQUREREREUvxpEBERERGRFH0a5C3Jhz70oc6OOj/qlxnXmMQ9H3bs2NGlxb0UWuu3c2+ttddff31y/La3va1Lo/b5P//5T2dHv42jjz66S2MZ5OBhJC76orJaWu0RXTvzmOmRK5+G7Lkcx7RJpqc/GHwWRvpvpYdfqb5SPXel9jM5UM+dxe+gYsRvaITqncU9j6JPAPddevDBBzv7kEMO6ez4TqcvAX0NaMd7MY3+Dy+99FJnv/jii8vmmeWjn2LMJ9s3851oLd+nYvRbwZUGERERERFJ8adBRERERERS/GkQEREREZEUfRpkVaGOP2p2qf2l9o66vagnfOWVV7q0GOO4tda2bdvW2Vk88BgPeql8xfOpLaTmkXnONLuHHnpoZ3OPh6hT5L4MlW5aDh5WSl+9WiyKzwbzwfkl82kg1AxHm2NxZN+GTIu8FIvQV+YVt38l8bmLwYi/S/bufO2117o07nEw8pxqXojjl+Oz2jclfg9U+1CxvDFf2b5SrY35tPD7psKVBhERERERSfGnQUREREREUpQnyaoysozGpT6eG5f+uFzJbdYZRjVKBPgcLiMyfFuEIdcYNo3EZUY+h8uiXEaMIVgp8zruuOPS54q8FchkCVziz2QJleSmkgtEKEfinBHHOeUP1Xw5ko+VguWJc+0s8qlZwoiupGxrJF+zSPOqc+dVt6NhcDNpb3WvLIQw07LxyndlZccxONom8V58ZzOPIyGSR6SIo5KimOdZ54jVn2FERERERGSh8adBRERERERS/GkQEREREZEUfRpkVaHmf2SLdtpRt0e/A+r4+NzoE1DpEl9//fW2HPQtYNhUXhvP5zby1D4ffvjhnX3YYYdNjunDEberF3mzMk+dd6b1HdUqx/OZR17L9GiPaKJ5/mqFX+U8FvXXVV1kjIYNzc6fJQRpFaJzXveeZ/tV91ot/5CR8o74UmTPIZVv08i9qr4xy3Oza6v5KfpLjPpDTD17pqtFRERERORNjz8NIiIiIiKS4k+DiIiIiIik/M//Lur+4iIiIiIishC40iAiIiIiIin+NIiIiIiISIo/DSIiIiIikuJPg4iIiIiIpPjTICIiIiIiKf40iIiIiIhIij8NIiIiIiKS4k+DiIiIiIik+NMgIiIiIiIp/wdLbwpd/mzeAwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x800 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "low_res_bicubic = nn.functional.interpolate(sampling_image, (64, 64), mode=\"bicubic\")\n",
    "fig, axs = plt.subplots(num_samples, 3, figsize=(8, 8))\n",
    "axs[0, 0].set_title(\"Original image\")\n",
    "axs[0, 1].set_title(\"Low-resolution Image\")\n",
    "axs[0, 2].set_title(\"Outputted image\")\n",
    "for i in range(0, num_samples):\n",
    "    axs[i, 0].imshow(images[i, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")\n",
    "    axs[i, 0].axis(\"off\")\n",
    "    axs[i, 1].imshow(low_res_bicubic[i, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")\n",
    "    axs[i, 1].axis(\"off\")\n",
    "    axs[i, 2].imshow(decoded[i, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")\n",
    "    axs[i, 2].axis(\"off\")\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7fa52acc",
   "metadata": {},
   "source": [
    "### Clean-up data directory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3a6f6d5a",
   "metadata": {},
   "outputs": [],
   "source": [
    "if directory is None:\n",
    "    shutil.rmtree(root_dir)"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "-all",
   "formats": "ipynb,py:percent"
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
